All in One SEOを使用していると、OGPデフォルト画像を設定すると、記事や固定ページに設定した画像ではなくデフォルトの画像が優先されてしまう場合があったため、(テーマによる可能性あり)それを改善するコードを紹介します。
目次(クリックでジャンプ)
【WordPress】AIOSEO使用時のOGP画像を、アイキャッチ画像で上書きする
ちなみに私が使用しているテーマはSwellですが、AIOSEOを使用した場合、OGP画像がデフォルト画像しか表示されませんでした。
functions.phpに追記する
使用テーマのfunctions.php
に以下のコードを追記してください。
すると、アイキャッチ画像が設定されていないページはデフォルト画像、アイキャッチ画像が設定されているページはそのアイキャッチ画像がOGP画像に設定されます。
//OGP画像を記事やページに設定しているもので上書き
function add_open_graph_meta_tags() {
if (is_singular()) { // 記事やページが表示されている場合
global $post;
setup_postdata($post);
$thumbnail = has_post_thumbnail() ? wp_get_attachment_image_src(get_post_thumbnail_id(), 'large')[0] : ''; // アイキャッチ画像のURLを取得
?>
<meta property="og:image" content="<?php echo esc_url($thumbnail); ?>" />
<meta property="twitter:image" content="<?php echo esc_url($thumbnail); ?>" />
<?php
wp_reset_postdata();
}
}
add_action('wp_head', 'add_open_graph_meta_tags');