WordPress: wlwmanifest.xmlのlinkタグを削除する

WordPressで生成されるWebページのheadタグ内に、wlwmanifest.xmlのlinkタグがあります。
このタグを削除したいので方法を探ってみました。

削除するタグ

今回はhead内にある次のタグを削除したい。

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://xxxx.xxx/wp-includes/wlwmanifest.xml" />

これはwlwmanifest.xmlは、Windows Live Writerというアプリで使用するデータです。
このアプリを使用しないなら必要ないので削除します。

wlwmanifest.xmlについては、次の記事で少し詳しく紹介しています。

WordPress: wlwmanifest.xmlは何?WordPress以外も制限するべきか

コード

次のコードをfunctions.phpか自作プラグインに記述します。

  • remove_action( 'wp_head' , 'wlwmanifest_link');
AFFS Simple Code Viewer
Copy

簡単な解説

まずはwp_head()アクションを確認してみます。
確認方法は、次の記事を読んでみてください。

WordPress:アクションまたはフィルターに登録されている関数をリストアップする

wp_head()アクションが、次のような関数を呼び出しているのがわかります。

  • *************wp_head
  • 1 , _wp_render_title_tag [/wp-includes/general-template.php(1287)]
  • 1 , wp_enqueue_scripts [/wp-includes/script-loader.php(2099)]
  • ・・・省略
  • 7 , print_emoji_detection_script [/wp-includes/formatting.php(5716)]
  • 8 , wp_print_styles [/wp-includes/functions.wp-styles.php(44)]
  • 9 , wp_print_head_scripts [/wp-includes/script-loader.php(2052)]
  • 10 , rest_output_link_wp_head [/wp-includes/rest-api.php(956)]
  • 10 , rsd_link [/wp-includes/general-template.php(3212)]
  • 10 , wlwmanifest_link [/wp-includes/general-template.php(3222)]
  • 10 , locale_stylesheet [/wp-includes/theme.php(710)]
  • ・・・省略
AFFS Simple Code Viewer
Copy

wlwmanifestに関連する関数は、一目でわかりますね。wlwmanifest_linkです。
念のためソースコードを確認してみます。

  • function wlwmanifest_link() {
  • echo '<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="' . includes_url( 'wlwmanifest.xml' ) . '" /> ' . "\n";
  • }
AFFS Simple Code Viewer
Copy

タグをechoしているだけですね。
wp_headアクションから、この関数を除去するだけでよさそうなのがわかりました。