先日WordPressがアップデートされて「Version 4.4」がリリースされました。
いくつかの新しい機能が追加されましたが、今回から採用された「Embed」は比較的新しいシステムなのでご存じない方が多いと思います。
この機能は、他のウェブサイトで「oEmbed」に対応している記事を、自分のブログに埋め込み可能になるもので、WordPress4.4 以降からは記事のURLを貼るだけで簡単に引用表示できます。
なお「Embed」機能で引用表示される情報は以下のとおり。
- アイキャッチ画像
- タイトル
- 抜粋テキスト
- サイトロゴ
- サイトタイトル
- コメント数
- 共有ダイアログ
また「Embed」対応のために、WordPress4.4にアップデートすると<?php wp_head(); ?>
のときに下記のコードが自動で挿入されるようになります。
<link rel='https://api.w.org/' href='http://example.com/wp-json/' /> <link rel="alternate" type="application/json+oembed" href="http://example.com/wp-json/oembed/1.0/embed?url=http%3A%2F%2Fon-ze.com%2F" /> <link rel="alternate" type="text/xml+oembed" href="http://example.com/wp-json/oembed/1.0/embed?url=http%3A%2F%example.com%2F&format=xml" /> <script type='text/javascript' src='http://example.com/wordpress/wp-includes/js/wp-embed.min.js'></script>
すべて「Embed」のために必要な情報ですが、今はまだこの機能自体が不要なケースのほうが多いかと思います。
目新しい機能なので注目されていますが、まだ対応しているサイトも少ないですからね。
そこで上記タグを削除するための方法を調べたので、以下に紹介します。
テーマファイル内の[functions.php]内に以下のコードを記述します。
remove_action('wp_head','rest_output_link_wp_head'); remove_action('wp_head','wp_oembed_add_discovery_links'); remove_action('wp_head','wp_oembed_add_host_js');
コレで出力されているすべてのEmbed系のタグを削除することができます。
本機能を無効化するためのプラグインも出回っているので、念のために紹介しておきます。
Plugin Directory : Disable Embeds
しかし[functions.php]を使うほうが簡単なので、わざわざプラグインを導入する必要はないでしょう。
環境によって[functions.php]を編集できない場合のみ、プラグインに頼ってみてはいかがでしょうか。
ついでにHTTPレスポンスも成形する
実はHTTPレスポンスヘッダーにも新機能の爪痕が残っています。
ツールを使って確認すると以下のような文字列がHTTPレスポンスに記述されています。
Link: <http://example.com/wp-json/>; rel="https://api.w.org/"
これも無駄な情報なので、同じく[functions.php]を使って削除しておきましょう。
記載するコードは次のとおりです。
remove_action('template_redirect', 'rest_output_link_header', 11 );
こちらも簡単ですね!
ぜひお役立てください。