こんにちは、”はふぃ”です。

Twitterで以下のような画像付きのツイートをよく見かけますよね?

このツイートは @hafilog

をツイートしたものですが、これの原文は

♻️ブログ更新♻️
Apple WatchでPayPayを使う方法
https://hafilog.com/apple-watch-paypay

だけで画像ファイルや内容は一切記入していないんです!

では、なぜこんな風に画像やブログ内容付きでいい感じにツイートされるかというと、TwitterのOGPという機能を利用しているからなんです。

今回は

  • “OGP”とは何か?
  • WordPressで作成した記事でどうやって”OGP”を設定するか

無料&プラグインなし でやる方法を説明します!

(有料のテーマだと標準装備だったりするので、お金に余裕がある人はそっちの方が楽かもしれません)

“OGP”とは?

“OGP”は「Open Graph protocol」の略で、TwitterやFacebookなどのSNSでシェアされた時にそのページのタイトルや内容、アイキャッチ画像(サムネイル)をいい感じに表示する仕組みのことです。

具体的には以下のような項目をページのmeta情報に設定すると、TwitterやFacebookが自動的にその内容を使ってリッチな情報を表示してくれます。

  • og:url:ページのURL
  • og:type:ページの種類(TOPページは「website」、記事ページは「article」など)
  • og:title:ページのタイトル
  • og:description:ページの概要
  • og:site_name:サイト名
  • og:image:サムネイルのURL

例えば上で紹介した「Apple WatchでPayPayを使う方法」では

となっています。

ページのmeta情報(OGP)の見方

※ 分かる方はこのセクションは飛ばしてください

※ ブラウザはchromeで説明します

① meta情報が見たいページで右クリックし、メニューの中から「検証」を選びます。
② 右側にメニューが表示されたと思うので、「Elements」タブになっていることを確認し、上半分のhtmlコードのどこか(画像の赤枠内)をクリックして選択状態にします。
③ その状態で ⌘ + f (Windowsの場合は Cntl + f )を押して検索窓を表示させ、”og:”と入力して Enter を押してみましょう。
④ するとOGPが設定されていれば以下の画像のようにマークされて表示されます。(Enterを押すと次の検索結果に移ることができるので、OGP以外にヒットしてしまった人はEnterを何度か押して探してください)

WordPressの記事にOGPを設定

普通に記事を書くだけではOGPを設定することはできないので、設定をいじります。

※ “functions.php”を編集するので、他の箇所をあまり触らない + 自己責任 でお願いします。(一応バックアップをとっておいて、なんかおかしくなったらバックアップに戻せば大丈夫です)

① WordPressの管理画面の左サイドメニューで「外観 > テーマエディター」をクリック
② “テーマの編集”画面になるので、右メニューの”テーマファイル”の中から「テーマのための関数(functions.php)」を選択します。
③ phpのコードが表示されると思うので、一番下の行の ?> の上に以下のコードをコピペします。

https://saruwakakun.com/html-css/wordpress/ogp#section3 から引用

function my_meta_ogp() {
  if( is_front_page() || is_home() || is_singular() ){
    global $post;
    $ogp_title = '';
    $ogp_descr = '';
    $ogp_url = '';
    $ogp_img = '';
    $insert = '';

    if( is_singular() ) { // 記事&固定ページ
       setup_postdata($post);
       $ogp_title = $post->post_title;
       $ogp_descr = mb_substr(get_the_excerpt(), 0, 100);
       $ogp_url = get_permalink();
       wp_reset_postdata();
    } elseif ( is_front_page() || is_home() ) { // トップページ
       $ogp_title = get_bloginfo('name');
       $ogp_descr = get_bloginfo('description');
       $ogp_url = home_url();
    }

    // og:type
    $ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article';

    // og:image
    if ( is_singular() && has_post_thumbnail() ) {
       $ps_thumb = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
       $ogp_img = $ps_thumb[0];
    } else {
     $ogp_img = '¥¥¥ TOPページ&アイキャッチ画像がないときに使われる画像のURL ¥¥¥';
    }

    // 出力するOGPタグをまとめる
    $insert .= '<meta property="og:title" content="'.esc_attr($ogp_title).'" />' . "\n";
    $insert .= '<meta property="og:description" content="'.esc_attr($ogp_descr).'" />' . "\n";
    $insert .= '<meta property="og:type" content="'.$ogp_type.'" />' . "\n";
    $insert .= '<meta property="og:url" content="'.esc_url($ogp_url).'" />' . "\n";
    $insert .= '<meta property="og:image" content="'.esc_url($ogp_img).'" />' . "\n";
    $insert .= '<meta property="og:site_name" content="'.esc_attr(get_bloginfo('name')).'" />' . "\n";
    $insert .= '<meta name="twitter:card" content="summary_large_image" />' . "\n";
    $insert .= '<meta name="twitter:site" content="¥¥¥ ツイッターのアカウント名 ¥¥¥" />' . "\n";
    $insert .= '<meta property="og:locale" content="ja_JP" />' . "\n";

    echo $insert;
  }
}

add_action('wp_head','my_meta_ogp');

¥¥¥ 〇〇 ¥¥¥ の部分は編集してください

  • ¥¥¥ TOPページ&アイキャッチ画像がないときに使われる画像のURL ¥¥¥
    • 例:'https://hafilog.com/wp-content/uploads/2020/05/laptop-3190194_1920.jpg'
  • ¥¥¥ ツイッターのアカウント名 ¥¥¥
    • 例:content="@hafilog"
④ 「ファイルを更新」で設定完了です!

(上で説明した「ページのmeta情報(OGP)の見方」を参考にページにOGPが設定されているか確認してみてください)

ツイートする前の表示確認

これで後はWordPressの記事のURLを使ってツイートするだけで完了なのですが、その前にどんな表示になるか確認しましょう。

Twitterが提供している「Card validator」というサイトを使います。

→ Card validator:https://cards-dev.twitter.com/validator

サイトを開くと”Card URL”という項目があるので、そこに確認したいページのURLを入力して”Preview Card”ボタンを押します。

すると以下のようにTwitter上でどのような表示になるのか確認することができます。

※ うまく表示されない場合は何度か”Preview Card”ボタンを押してみてください

※ 画像を表示するにはWordPressで記事を書く際に アイキャッチ画像 を設定しておく必要があります(参考: https://ferret-plus.com/14025

ツイート

ここまでくればあとは表示したいページのURLを含んだツイートをするだけでいい感じの表示になります!

⬇︎

まとめ

画像や概要がつくだけでツイートが一気にそれっぽくなりますよね!

ただ、これによってアイキャッチ画像の重要性も増すので、そこもこだわればさらにクリックしてもらえるツイートになるかもしれませんね。

(HAFILOGのアイキャッチ画像は無料画像に文字をのせただけなので、その辺りも改善したいです)

あ、もし良ければ @hafilog のフォローもよろしくお願いします!笑

投稿者: はふぃ

若手のWEBフロントエンジニア。最近はバレーボールにハマってます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA