WordPress Logo

先日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 );

こちらも簡単ですね!
ぜひお役立てください。