WordPress: 本文に画像がない場合の「いいね用代替え画像」を指定するコードを書いた

facebook,WordPress

本文に画像がない場合の「いいね用代替え画像」を指定するコードを書いた。

2年ほど前に書いた「WordPress: facebookの「いいね」に使われる画像を指定するコード書いた | Hinemosu」の機能縮小版です。

「いいね!」用代替え画像指定コード

「いいね用代替え画像」を指定するには、個別記事のHTMLヘッダー生成処理を行うブロックに以下のコードを追加してください。

<?php 
$str = $post->post_content;
$searchPattern = '/<img.*?src=(["\'])(.+?)\1.*?>/i';
if ( !preg_match( $searchPattern, $str ) ) {
    echo '<meta property="og:image" content="IMAGE_URL"/>';
} ; ?>

上記のコードを使用すると、ブログ本文にimgタグがない場合、Facebookの「いいね!」ボタンを押した時に使用されるサムネイル画像として、IMAGE_URLで指定されるURLに存在するファイルが使用されます。

コードを書いた経緯など

ウチのブログでは、OpenGraph用のタグ生成をJetpack for WordPressに任せてるんだけど、本文に画像がない場合はog:imageのタグを生成しないのよね。

で、og:imageがない場合は、facebook側で記事先頭付近にある画像を拾ってくるんだけど、ウチのブログだと「null」が表示されて格好悪いのよ。

この問題を解決するために、本文に画像がない場合にのみ代替え画像を指定するコードを書いたって次第です。

そのうちJetpack側で対応手段が出来るんじゃないかと思うけど、それまでは上記コードが便利に使えると思いますよ。

そんな感じで!