Written by Manabu Bannai

【WordPress】プラグインなしでOGP設定する方法【FB/Twitter用】

PROGRAMMING WordPress

WordPressプラグインなしでFacebook OGPとTwitter Cardsを設定するコードです。備忘録メモです。

<!-- OGP設定 -->
<meta property="fb:app_id" content="【App ID】" />
<meta property="fb:admins" content="【FB Admin】" />
<meta name="twitter:card" value="summary"/>
<meta name="twitter:site" value="@【Twitterのユーザー名】" />
<meta name="twitter:creator" value="@【Twitterのユーザー名】" />
<meta name="twitter:title" value="<?php the_title(''); ?>"/>
<meta name="twitter:description" value="<?php echo get_post_meta($post->ID, _aioseop_description, true); ?>"/>

<!-- 個別記事の場合 -->
<?php if (is_single()) { ?>
<meta property="og:url" content="<?php the_permalink() ?>"/>
<meta property="og:title" content="<?php the_title(''); ?>" />
<meta property="og:description" content="<?php echo get_post_meta($post->ID, _aioseop_description, true); ?>" />
<meta property="og:type" content="article" />
<?php
  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"; //FBのアイキャッチ画像
    echo '<meta name="twitter:image" value="'.$image[0].'" />'; echo "n"; //FBのアイキャッチ画像
  } else { //アイキャッチがない場合
    echo '<meta property="og:image" content="【画像リンク】" />';echo "n"; //指定の画像
    echo '<meta name="twitter:image" value="【画像リンク】" />';echo "n"; //指定の画像
  }
?>

<!-- 個別記事以外の場合 -->
<?php } else { ?>
<meta property="og:site_name" content="<?php bloginfo('name'); ?>" />
<meta property="og:description" content="<?php echo get_post_meta($post->ID, _aioseop_description, true); ?>" />
<meta property="og:type" content="website" />
<meta property="og:image" content="【画像リンク】" />
<meta name="twitter:image" value="【画像リンク】" />
<?php } ?>
<!-- /OGP設定 -->

※コードの動作環境
All in One SEO Packを利用していることが条件。
そうでないと、以下の部分が動作しません。

get_post_meta($post->ID, _aioseop_description, true);