WPの抜粋が機能しない場合、og:description の設定を post_content から出力
// ループ外の前提
global $post;
$excerpt = $post->post_content;
$excerpt = strip_tags($excerpt);
$excerpt = str_replace(PHP_EOL, '', $excerpt);
$excerpt = mb_substr($excerpt, 0, 120);
echo $excerpt . '...';
アイキャッチ画像の設定がない場合、 post_content の最初の画像ファイルを og:image に設定
global $post;
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$image = $matches[1][0];
if ( empty($image) ){
$image = get_theme_file_uri('デフォルト画像パス');
}
echo $image;
ちなみに og:image は複数枚指定することができるため、必要に応じて複数指定するようにする。
複数枚指定は古い仕様だったようだ。