作ってたサイトで、モロに以下のサイトのような問題が起きました。

Facebookのいいね数がおかしい・シェアしてもトップページのURLしか出てこないバグの対処法

なので、これらの記事を参考にOGPを最適化。

WordPressでFacebookのいいね!ボタンを不具合無く設置する際のポイント

WordPressで、OGP(The Open Graph Protocol)に完全な情報を反映させる

結果のコードはコレ。

<?php
$post_id = get_the_ID();
$post = get_post($post_id);
$content = $post->post_content;
$content = apply_filters(’the_content’, $content);
$content = strip_tags($content);
$content = str_replace(” “, “”, $content);
$content = str_replace(” ”, “”, $content);
$content = mb_strimwidth($content, 0, 200, “…”);
?>

<meta property=”fb:app_id” content=”アプリID”>
<meta property=”og:title” content=”<?php the_title(); ?>”>
<meta property=”og:type” content=”blog”>
<meta property=”og:url” content=”<?php the_permalink(); ?>”>
<meta property=”og:description” content=”<?php echo $content; ?>”>
<meta property=”og:site_name” content=”<?php bloginfo(’name’); ?>”>
<?php
$str = $post->post_content;
$searchPattern = ‘/<img.*?src=(["\'])(.+?)\1.*?>/i’;
if ( preg_match( $searchPattern, $str, $imgurl ) ) {
echo ‘<meta property=”og:image” content=”‘.$imgurl[2].’”>’;
} else {
echo ‘<meta property=”og:image” content=”代替画像のパス”>’;
};
?>

facebookめんどくせーなー。
こういう仕様がよく分からなかったり複雑なサービスって仕事で使いたくないわー。