プラグイン不要でWordPressにOGPを設定する方法

前回OGP設定の必要性について記事にしたので、今回はWordPressにOGPの設置していきます。

WordPressの場合はOGPの設置ができるプラグインもありますが色々と不具合があったりするようなのでプラグインなしで設置してみる事にしてます。

今回はFacebook用のOGP設定とTwitterCards(Twitterカード)用のタグを設置していきますが、細かい部分はその都度書いていきます。

スポンサーリンク

WordPressへOGP設置する手順

先に手順を書いておきます。まずOGPを設定するコードを書いて、header.phpに追加してあげる必要あります。

とりあえずOGPを設定するコードって結構複雑ですしちょっと長くなるので、子テーマに「ogp.php」というファイルを作成しておき、そこにOGPの設置コードを書きます。

それで「header.php」でこの「ogp.php」を呼び出すような感じでやっていきますが子テーマって何?という場合はこちらの記事からどうぞ。
子テーマの作り方と有効化する方法【図解】

それで、このOGP設置する時に必要になるのが「FacebookアプリのID」もしくは「Facebook個人アカウントのID」です。個人アカウントのIDを使うとFacebook個人のアカウントが特定される事があるので、「FacebookアプリのID」の方を利用します。

という訳で先にFacebookアプリIDを取得しておきましょう。この記事を先にどうぞ。
FacebookアプリIDの取得方法と確認方法

FacebookアプリのIDを取得できたら準備はOK。早速作業開始。

子テーマにogp.phpファイルを作成

先ほども説明したようにOGP設置用コードを書くphpファイルを作成します。ロリポップで説明しておきます。

現在使用している子テーマ(自分の場合はchild)に「新しいファイルを追加」します。

WordPress-ogp-1

そしてこの作成したファイルに「ogp.php」と名前をつけて「保存」。中身は後で書きます。

WordPress-ogp-2

作成して「保存」できたらWordPressに戻って「外観」⇒「テーマの編集」と進みます。すると右側のサイドに先ほど追加した「ogp.php」があるのでそれをクリックして開きます。

WordPress-ogp-3

この中に次のコードを入れます。

<!--OGP開始-->
<meta property="fb:app_id" content="【FacebookのアプリID】" />
<meta property="og:locale" content="ja_JP">
<meta property="og:type" content="blog">
<?php
if(is_single() or is_page()){//投稿記事か固定ページ
     if(have_posts()): while(have_posts()): the_post();
          echo '<meta property="og:description" content="'.mb_substr(get_the_excerpt(), 0, 100).'">';echo "\n";//抜粋から
     endwhile; endif;
     echo '<meta property="og:title" content="'; the_title(); echo '">';echo "\n";//投稿記事タイトル
     echo '<meta property="og:url" content="'; the_permalink(); echo '">';echo "\n";//投稿記事パーマリンク
} else {//投稿記事以外(ホーム、カテゴリーなど)
     echo '<meta property="og:description" content="'; bloginfo('description'); echo '">';echo "\n";//「一般設定」で入力したブログの説明文
     echo '<meta property="og:title" content="'; bloginfo('name'); echo '">';echo "\n";//「一般設定」で入力したブログのタイトル
     echo '<meta property="og:url" content="'; bloginfo('url'); echo '">';echo "\n";//「一般設定」で入力したブログのURL
}
?>
<meta property="og:site_name" content="<?php bloginfo('name'); ?>">
<?php
$str = $post->post_content;
$searchPattern = '/<img.*?src=(["\'])(.+?)\1.*?>/i';//投稿記事に画像があるか調べる
if (is_single() or is_page()){//投稿記事か固定ページの場合
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";
} else if ( preg_match( $searchPattern, $str, $imgurl ) && !is_archive()) {//アイキャッチは無いが画像がある場合
     echo '<meta property="og:image" content="'.$imgurl[2].'">';echo "\n";
} else {//画像が1つも無い場合
     echo '<meta property="og:image" content="【デフォルト画像のURL】">';echo "\n";
}
} else {//投稿記事や固定ページ以外の場合(ホーム、カテゴリーなど)
     echo '<meta property="og:image" content="【デフォルト画像のURL】">';echo "\n";
}
?>
<!--OGP完了-->

参考:【Web制作】FacebookのOGP設定をプラグインなしで設置する方法|ゆめぴょんの知恵

変更箇所は3箇所。

  • FacebookアプリIDの部分に自分のアプリID(15桁)を入れる
  • 「デフォルト画像のURL」にデフォルトで使いたい画像のURLを入れる所が2箇所

それぞれ【 】は消してね。デフォルトの画像というのはトップページとかカテゴリーページ、もしくはアイキャッチ画像が設置されていないページをシェアとかされた時の画像になりますよ。こんな感じで。

WordPress-ogp-7

ついでにTwitterカードのタグも入れておきます(後で説明)。先ほどのコードの下に更に追加。

<!--Twtter Cards-->
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="Twitterのアカウント">
<meta name="twitter:creator" content="製作者のアカウント">
<meta name="twitter:domain" content="自分のドメイン" />
<!-- /Twtter Cards -->

Twitterは個人であれば「製作者のアカウント」と「Twitterのアカウント」は同じでOK。それぞれ「@」からね。こんな感じになりました。

WordPress-ogp-4

ここまでできたらogp.phpは完成なので「変更を保存」を忘れずに。後はこれをheader.phpで呼び出すコードを書きますが、その前にちょっと補足。

「TwitterCards」というのはTwitterで自分のブログのURLを投稿した時に「概要を表示」という項目を追加してブログ情報をリッチに表示してくれるやつです。

シーサーOGP-12

この概要をクリックするとこんな感じに表示されます。

シーサーOGP-14

このTwitterカードを利用するためのコードを追加したという訳です。

header.phpで「ogp.php」を呼び出す

次にheader.phpを開いて「head」~「/head」の中に「ogp.php」を呼び出すのですが、その前に「head」タグの書き換えが必要なので「head」の記述を探します。

<head>

これを下記のように書き換えます。

<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#">

こんな感じになるよ。

WordPress-ogp-6

一応これはHTML5用のコード。多分WordPressのほとんどのテーマがHTML5だと思うのでこれでOK。ちなみにWordpressのデフォルトテーマはTwentyEleven以降HTML5で書かれています。

書き換えができたら「ogp.php」を呼び出しますよ。「/head」タグの直前くらいに次の召喚コードを入れたらOK。

<?php get_template_part('ogp');?>

こんな感じの仕上がり。

WordPress-ogp-5

ここまでできたら「変更を保存」してエラーがでないかをチェックしていきます。

OGP設定の確認

最後にFacebookのDebuggerでエラーがでないかをチェックします。
Debugger

調べたいURLを入力して「Debug」をクリック。

シーサーOGP-20

それでもしかするとキャッシュ(以前のデータ)が残っているかもしれないので、「Fetch new scrape information」もクリック。これ数回(2、3回程度)押してみた方がいいかも。更新されない時があるので。

シーサーOGP-21

これでエラーや警告(Warnings That Should Be Fixed)が出ていなかったらOKです。

Twitterカードを有効にしておく

TwitterCardを利用する場合に必要なタグは先ほどのOGPタグの追加で既に追加されているので、後はTwitterでの認証しておきましょう。こちらに移動。
Card validator

ページに移動して今設定したブログのURLを入力し、「Preview Card」をクリック。

シーサーOGP-15

以前は「Request Approval」という申請ボタンがあったような気がしたけど今は見当たりません。とりあえず「自分のURL is whitelisted for summary card」と表示が出てくればOKです。

シーサーOGP-16

これでTwitterに自分のブログのURLをTwitterで投稿すると「概要を表示」が表示されるはず(ちょっと時間かかる場合もあるかも)。

以上でWordPressでのOGP設置は完了です。後はWordPressとSNS(FacebookとかTwitter)を連動させるプラグインとか使うとブログ更新時にSNSでも反映されますし、プラグイン使わなくてもSNSでURLを投稿すればOGPで設定した画像、タイトル、説明文等が表示されるようになります。

WordPressの始め方
サイトのアクセスアップや稼ぐためにおすすめの無料レポート

個人的にアクセスアップや検索上位表示に役立った無料レポートです。登録にメールアドレスが必要ですが、フリーメールでもOKです。

おすすめの無料セミナー

これまでお金に関する勉強をした事がない方は稼ぐサイト作りの前にお金に関する無料セミナーに参加してみて下さい。お金をためたり増やしたりするためにお金の知識があるとかなり有利。考え方の土台になる部分ですからね。

「1万円から始められる節約の方法」「お金に働いてもらう方法」「収入の2割を自動的に貯める方法」など、お金に関する基本的な知識が学べる2時間の無料のセミナーが毎日のように行われてますので、一度参加してみる事をおすすめします。

これまで全くお金の勉強していない方であればお金の知識を身につける事で考え方が大きく変化するはずです。無料の2時間程度のセミナーですが、内容は濃いのでおすすめです。
お金に関する教養無料セミナー

※入院生活から復活しました!!またできるだけ返信しますのでよろしくお願いします(^^)

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。