Webサイトに動画やツイートなどのコンテンツを埋め込む「embed」機能。WordPressページが埋め込まれる場合、デフォルトでは本文の抜粋が表示されますが、これをメタディスクリプションに変更する方法をご紹介します。
WordPressのembed機能
「embed(エンベッド)」とは埋め込み機能のこと。「oEmbed」というフォーマットに対応しているページや動画やツイートなどのコンテンツを、別のサイトに埋め込む機能です。
WordPressはバージョン2.9から埋め込む側、バージョン4.4から埋め込まれる側として対応されています。
WordPressから埋め込むと
例えばこのサイト(WordPress)からツイッターを埋め込むとこんなかんじ。
朝、梅が咲いているのに気付きました。
心に、ちっちゃい春がともる感じですね。明日は #立春 ♡
うぐいす餅でも買いに行こっと(๑˃́ꇴ˂̀๑)
〔3号〕— NHK広報局 (@NHK_PR) February 3, 2017
WordPressのサイトが埋め込まれると
WordPressのサイトがどこかに埋め込まれるとこんなかんじ。
URLだけでこんなかっこいいリンクにしてくれるハイテク機能です。
デフォルトでは本文の抜粋を表示
さて、WordPressで特に何もいじらない場合はこんなかんじに表示されます。
この本文の抜粋の部分は、the_excerpt_embed()という関数で出力されています。内部で呼ばれているのはget_the_excerpt()。WordPress日本語版に同梱されているプラグイン「WP Multibyte Patch」が有効になっていれば、初期設定では110文字程度が抜粋されます。
これでも悪くないですが、本題と関係ない前置きをしている場合や導入の文章が長い場合など、伝えたい内容が伝わらないことも。
更に、プラグイン「Table of Contents Plus」で一番上に目次を作るように設定していたり、導入文なくいきなり見出しが始まるスタイルにしていると、こんなことに↓!整形されていない目次の羅列は結構見苦しいですね。
メタディスクリプションを表示する方法
WordPressでWebサイトを作っている方は、meta descriptionタグを設定している方も多いでしょう。Googleなどの検索結果に表示するもので、ページの概要を短くまとめたものです。
ということは、embedで埋め込まれる場合にも、本文の抜粋ではなくメタディスクリプションを表示すれば、簡潔にページの内容を伝えられます。
メタディスクリプションを表示するには、functions.phpに以下のコードを追加します。
1 2 3 4 5 6 7 8 9 |
//embedにメタディスクリプションを表示 function excerpt_embed_description($output) { global $post; if (get_post_meta($post->ID, 'bzb_meta_description', true)) { $output = get_post_meta($post->ID, 'bzb_meta_description', true); } return $output; } add_filter('the_excerpt_embed', 'excerpt_embed_description'); |
このサイトはXeory Baseというテンプレートを使用しているので、4行目と5行目で「bzb_meta_description」というキー名を使っていますが、この部分は適切なものに書き換えてください。
例えば、プラグイン「All in One SEO Pack」を使っている場合は、「bzb_meta_description」を「_aioseop_description」に書き換えるとうまくいくと思います。
2行目と9行目の「excerpt_embed_description」という関数名も適当なので、お好きなものに書き換えOKです。
ということで、メタディスクリプションの表示、成功です。
実際のリンクがこちらです↓。ついでに読んでもらえると嬉しいです。
embedの関連記事
こちらの記事も合わせてどうぞ!