カスタム投稿タイプのアイキャッチ画像をogp:imageタグで出力しようと思ったのですが、これが思いのほか苦戦しました。
いろんなサイトを参考にしながら実装してみましたが、どうやっても表示されず・・・。面倒になって放棄しかけましたが、こちらのサイトを参考にして何とか実装できました。
できればプラグインを突っ込みたくはないのでね・・・
if (is_single() or is_page()){//投稿記事か固定ページ
if (has_post_thumbnail()){//アイキャッチがある場合
$image_id = get_post_thumbnail_id();
$image = wp_get_attachment_image_src($image_id, 'full');
echo '<meta property="og:image" content="'.$image[0].'">';echo "\n";
} elseif( preg_match( '/<img.*?src=(["\'])(.+?)\1.*?>/i', $post->post_content, $imgurl ) && !is_archive()) {//アイキャッチ以外の画像がある場合
echo '<meta property="og:image" content="'.$imgurl[2].'">';echo "\n";
} else {//画像が1つも無い場合
echo '<meta property="og:image" content="./img/facebook_thumb.jpg">';echo "\n"; //画像が1つも無い場合に表示する画像URL
}
} else { //ホーム・カテゴリーページなど
echo '<meta property="og:image" content="./img/facebook_thumb.jpg">';echo "\n"; //画像が1つも無い場合に表示する画像URL
コーディングの仕事から離れてしまい。コードを書く機会も激減しいろいろ忘れ始めてるので定期的になにかしないといけませんね・・・。