y.o.designers-works

App IDを正しく取得し、WordPressにOGPを設定する方法

一度取得や設定をしてから次に同じ事をやるときまでに忘れてしまうので覚書。
Facebook Developersの登録からApp IDの取得・設定方法とOGPの設定までの一連の流れを紹介します。

Facebook Developersの登録

1:自分のfecebookにログインしている状態でhttps://developers.facebook.com/

2:”Register now”をクリック

Facebook Developersの登録

3:”いいえ”から”はい”に変更し、登録する

Facebook Developersの登録

4:完了をクリック

Facebook Developersの登録

5:表示された画像をクリックし、”送信”

Facebook Developersの登録

これで登録はOKです。
次にApp IDの取得と設定方法です。

App IDの取得・設定方法

1:デベロッパートップから右上の”My Apps”にマウスオーバー”Add a New App”をクリック

App IDの取得・設定方法

2:basic setupをクリック

App IDの取得・設定方法

3:表示名(日本語可)とカテゴリを選択し、”アプリIDを作成”

App IDの取得・設定方法

4:表示された画像をクリックして”送信”

App IDの取得・設定方法

5:左メニューの”ベーシック”をクリック

App IDの取得・設定方法

6:”表示名”はさっき入力したのでOKで、後は”アプリドメイン”と”連絡先メールアドレス”と”+プラットフォームを追加”に入力します。

App IDの取得・設定方法
App IDの取得・設定方法

7:”ウェブサイト”を選択します。

App IDの取得・設定方法

8:次は左メニューの”アプリレビュー”をクリックして”いいえ”になってるところを”はい”に変更

App IDの取得・設定方法
App IDの取得・設定方法

9:”確認”をクリックする

App IDの取得・設定方法

10:”email”と”public_profile”と”user_friends”が有効になります。

App IDの取得・設定方法

11:これで無事設定完了です。

App IDの取得・設定方法

Facebook Developersの登録とApp IDの取得・設定方法はこれでおしまいです。
次はOGPの設定をしていきます。

OGPの設定

1:header.phpにコードを追加する

HTML5

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

HTML5以外

<html lang="ja" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">

2:header.phpのhead内に記述するコード

<meta property="og:type" content="blog">
<?php
if (is_single()){
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="http://example.com/">';echo "\n"; //サイトURL(/ありで指定する)
}
$str = $post->post_content;
$searchPattern = '/<img.*?src=(["\'])(.+?)\1.*?>/i';
if (is_single()){
  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 {
    $ogp_image = get_template_directory_uri().'/images/ogp-image.jpg'; //投稿にサムネイルも画像も無い場合の処理
    echo '<meta property="og:image" content="'.$ogp_image.'">';echo "\n";
  }
} else {
  if (get_header_image()){
    echo '<meta property="og:image" content="'.get_header_image().'">';echo "\n";
  } else {
    echo '<meta property="og:image" content="'.get_template_directory_uri().'/screenshot.png">';echo "\n"; //ヘッダーイメージがない場合は、テーマのスクリーンショット
  }
}
?>
<meta property="og:site_name" content="<?php bloginfo('name'); ?>">
<meta property="og:locale" content="ja_JP" />
<meta property="fb:app_id" content="facebookのApp-ID(15文字の半角数字)">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@Twitterアカウント">

上記のコードでOGPの設定をします。
これは寝ログさんのhttp://nelog.jp/wp-ogp-settingsを使わせていただきました。ありがとうございます。

動作チェック

一通りの設定が終わったらOpen Graph Object DebuggerでOGPの設定にエラーが無いかチェックします。

※”エラーがあったら修正し”Fetch new scrape information”というボタンを押して情報を更新してください。

OGPの画像適正化

OGP画像シミュレータでOGPの画像がどのように表示されるかもチェックしておくと良いです。

いいねボタンと、シェアボタンを設置する

App IDが正常に設定できたらSocial Pluginsでいいねボタンとシェアボタンの設置コードを取得しましょう。

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.5&appId=●●●";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

まず初めに上記のコードが必要になります。いいねボタン、シェアボタン共通で使用できます。
<body>開始タグの直後にコードを記述します。
●●●に取得したAPP IDを入力してください。

いいねボタンの設置方法

<div class="fb-like" data-href="<?php the_permalink(); ?>" data-layout="standard" data-action="like" data-show-faces="true" data-share="true"></div>

「data-href」に<?php the_permalink(); ?>タグを指定すれば、各記事毎にパーマリンクを出力してくれるので、全記事共通のコードで対応できます。

シェアボタンの設置方法

<div class="fb-share-button" data-href="<?php the_permalink(); ?>" data-layout="button_count"></div>

こちらもいいねボタンと同じく<?php the_permalink(); ?>タグで記事毎にパーマリンクを出力し、全記事共通のコードで対応できます。

まとめ

一連の流れを紹介させて頂きました。
大事なのは”Open Graph Object Debugger”で正しく設定されているかを確認することです。
エラーが出たら原因を追及し(ここではエラーの例は割愛してます)エラーが無くなるまで根気よく設定してください。
App IDの登録方法やOGPの設定など気がついたら仕様が変更している場合の為にも常にアンテナを張りたいと思います。

スポンサーリンク

他にオススメな記事