JetpackのOGPイメージがブランクなのが気に入らないので

投稿日:

 ブログからFacebookやTwitterへのクロスポストをするのに、jetpackというプラグインをありがたく使わせていただいているが、エントリに画像を特に載せなかった場合、Facebookなどへ送られるイメージがブランクになるのが気に入らない。

 FacebookやTwitterは、「OGP」と言われる仕組みを使ってアイキャッチ画像を載せる。htmlヘッダのmetaタグに「property」という属性を置いて、これに「og:image……」などと記載し、content属性に画像のURLを書いておけば、それがFacebookやTwitterなどに読み取られ、使われるのである。例えば、FacebookやTwitterにリンクを張った際に「http://k.yimg.jp/images/top/sp2/event/newyear/2016/omikuji2016_logo.png」という画像を載せたければ、ヘッダに書くタグは次のとおりである。

<meta property="og:image" content=http://k.yimg.jp/images/top/sp2/event/newyear/2016/omikuji2016_logo.png" />

(ヤフーさんに迷惑がかかるので、よいこの皆さんはこういう悪ふざけをしてはいけません。)(笑)

 なので、これを適当に書いてやれば、特に画像を使用していないブログのエントリでも、適当な画像がSNSにバナーのようにポストされる。

 前に、自分のプロフィールイメージが載るようにここを書き換えてみていたのだが、毎回毎回自分のむさくるしいイメージ(コレ(笑))が載るのも鬱陶しい。さりとて、いちいちアイキャッチ画像を毎回載せるのも面倒なので、適当な画像素材を1000個くらい見えるところにアップロードし、乱数で適当なものを選ぶようにしてみた。

 プラグインファイルの編集機能を使い、「jetpack/functions.opengraph.php」というファイルを次のように書き換えるのである。

(該当箇所抜粋)

	if ( empty( $image ) ) {
		/**
		 * Filter the default Open Graph Image tag, used when no Image can be found in a post.
		 *
		 * @since 3.0.0
		 *
		 * @param string $str Default Image URL.
		 */
		//$image['src'] = apply_filters( 'jetpack_open_graph_image_default', 'https://s0.wp.com/i/blank.jpg' );
		$randimage = "https://satotoshio.net/blog/wp-content/uploads/2015/12/PHM14_" . sprintf("%04d", rand(1, 1000)) . ".jpg";
		$image['src'] = apply_filters( 'jetpack_open_graph_image_default', $randimage);
	}

 この方法を使うと、jetpackがアップデートされるたびにこの部分を書き換えなければならなくなるが、まあ、いいや、そんなに頻繁にアップデートはないし。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください