Wordpressで完全なOGPを実装しようとしたらreg_replaceでUnknown modifierって怒られたので自力で回避したメモ

WordPressで、OGP(The Open Graph Protocol)に完全な情報を反映させる | WordPress | いろいろコードスニペット

この記事を参考に完全なOGPを実装しようと画策してみたのだけど、いざやってみると正規表現関連っぽいreg_replaceでUnknown modifierが出てしまうので自力で回避したメモ。

functions.phpに追加したfunctionが悪さをしていることがわかった。問題の箇所はいずれもreg_replaceしている箇所。

//$eyeImg[0] = preg_replace(‘/^\/wp-content/uploads/’, get_bloginfo(‘url’) . ‘/uploads’, $eyeImg[0]); ←コメントアウト
$eyeImg[0] = wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); ←追加

//$thumb[0] = preg_replace(‘/^\/wp-content/uploads/’, get_bloginfo(‘url’) . ‘/uploads’, $thumb[0]); ←コメントアウト
$$thumb[0] = wp_get_attachment_url( get_post_thumbnail_id($post->ID) ); ←追加

最初のはアイキャッチがある場合のイメージURL取得、後者は投稿で使用されている最初のイメージURL取得。いずれも無い場合はデフォルト画像を使う。

実は以前、投稿をサムネイル付きで一覧を表示するウィジェットプラグインを製作していたのでそのコードの流用だけど、これでエラーは出ないのでよしとする。