WordPressにOGPを設定する

WordPressにOGPを設定する

スポンサーリンク

テーマヘッダーに記載

まとめてここに書いてもいいのだけど、別ファイルを読み込んでもいいので、私は別ファイルにしています。コードが沢山並んでいるよりわかりやすいので。

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

<?php wp_head(); ?>
<?php //facebook OGPここから// ?>
<?php include TEMPLATEPATH . '/ogp.php';?>
↑次の項目で作るファイルを読み込む
<?php //facebook OGPここまで// ?>
</head>

<body>
<?php //グーグルアナライザー// ?>
<?php include_once("analyticstracking.php") ?>
<?php //グーグルアナライザーここまで// ?>
</head>

<body>
<?php //グーグルアナライザー// ?>
<?php include_once("analyticstracking.php") ?>
<?php //グーグルアナライザーここまで// ?>

<?php //facebookアプリ// ?>
<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&appId=123456789012345&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<?php //facebookアプリここまで// ?>

<?php //ピンタレストここから// ?>
<script type="text/javascript" src="//assets.pinterest.com/js/pinit.js"></script>
<?php //ピンタレストここまで// ?>

ogp.php ファイルを作成

ogp.phe という名前のファイルを作り、下記をコピペして赤い箇所を書き換えて、テーマテンプレートフォルダにアップする。

<!--OGP開始ここから-->
<meta property="og:locale" content="ja_JP">
<meta property="fb:admins" content="123456789012345" />
  ↑↓ユーザーIDかアプリIDのどちらからしいがアプリがいいみたい
<meta property="fb:app_id" content="123456789012345" />
<meta property="og:type" content="blog">
<meta property="og:type"   content="website or blog" />
<meta property="og:url"    content="http://example.com/" />
<meta property="og:title"  content="ページの名前" />
<meta property="og:image"  content="http://example.com/xxx/xxx.jpg" />
<meta property="og:description"  content="概要書く" />
<meta property="og:site_name"  content="サイトの名前" />
<meta property="article:publisher" content="https://www.facebook.com/example" />

<?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="'; 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="http://............./no_image_200.jpg">';echo "\n";
}
} else {//投稿記事や固定ページ以外の場合(ホーム、カテゴリーなど)
     echo '<meta property="og:image" content="http://............./no_image_200.jpg">';echo "\n";
}
?> 
<!--OGP開始ここまで-->

シェアする

フォローする