ブログのOGPの設定をどこまで考えるのか?

スポンサーリンク

そもそもOGPとは

OGRとは、正式には「Open Graph Protocol」です。

簡単にいうと、FacebookなどのSNSサービスに「このさいとは、こんなサイトだよ」という情報を渡すための規格です。

これは、今も出ましたがFacebookと一緒に説明されることが多い規格ですが、Google+やmixiでも利用されています。

記述の仕方ですが、HTMLのタグ内に記述します。

<meta property="og:title" content="タイトル">
<meta property="og:type" content="article">//トップページなら「website」中の記事なら「article」
<meta property="og:description" content="記事の説明">
<meta property="og:url" content="サイトのURL">
<meta property="og:image" content="アイコンの設置場所の絶対パス">
<meta property="og:site_name" content="サイトの名前">

と、いった感じです。

こちらは、実際「ざかしんく」をFacebookで投稿した際のサンプルです。

ざかしんくOPGサンプル

上記のタグを設定すると、Facebookで記事を共有した場合に情報が掲載出来ます。特にアイコンやサイトタイトルは「どのサイトのものなのか」が明確になります。

しかし、実際ブログを運営してWordpressなどでこのOGPを導入しようとすると、「全部一緒でいいの?」という疑問にぶちあたります。

そもそもOGPのタグの中にも、トップページは「website」にして、それ以外の記事などのページは「article」にするようになっています。

また、タイトルや、ディスクリプションなども全て一緒で良いかというと、そうではありません。

記事などを共有した場合は「記事のタイトル」や、「記事内容の一部」が投稿できたほうが効果的です。

では、毎回、記事を書く度に「ヘッダー内のタグまで変更するのか?」というと、それではせっかくWordpressにしている利便性がありません。

よって、そこはPHPで出し分ける対応をします。

このOPGのタグは記載していなければ「該当しそうな箇所を勝手に抽出」します。それである程度あっていれば良いですが、中にはロクでもない箇所を引っ張ってしまうこともあります。

そこでより確実に狙ったところを抽出するために、OGPタグを以下のように記述します。

<meta property="og:title" content="<?php single_post_title(); ?>">
<?php if ( is_home() || is_front_page() ) : ?>
<meta property="og:type" content="website">
<?php else : ?>
<meta property="og:type" content="article">
<?php endif; ?>
<meta property="og:description" content="<?php echo mb_substr(strip_tags($post-> post_content),0,99).'...'; ?>">
<meta property="og:url" content="<?php $str = get_bloginfo('url') . get_permalink(); ?>">
<meta property="og:site_name" content="ざかしんく">

これを設定しておくと、中ページなどでトップページと同じようになることは避けられます。

facebook OGP ざかしんく サンプル

「WP-OGP customized」なるWPプラグインがあるのは知っているのですが、なんか、逆に面倒くさい気がして使っていません・・・。

スポンサーリンク

シェアする

フォローする

スポンサーリンク