説明
「WordPress 5.7 Beta 1(以降Beta 1)」が公開され、1か月後には正式版がリリースされる。そんなBeta 1のソースコードを眺めていると、robots-template.phpファイルが追加されていた。
はじめに、この記事は公開された5.7 Beta 1をもとにしており、正式リリースの際に変更される可能性があることを予めお断りする。
wp_no_robots関数からwp_robots関数へ
robots-template.phpファイルに定義されている関数は次の通りである。
関数 | 機能 |
wp_robots | クローラー向けのmeta要素を出力する |
---|---|
wp_robots_noindex | wp_robotsフィルターのコールバック関数:「検索エンジンでの表示」が無効の場合にcontent属性にnoindexなどを適用する |
wp_robots_no_robots | wp_robotsフィルターのコールバック関数:content属性にnoindexとfollowまたはnofollowを適用する |
wp_robots_sensitive_page | wp_robotsフィルターのコールバック関数:content属性にnoindexとnoarchiveを適用する |
wp_robots_max_image_preview_large | wp_robotsフィルターのコールバック関数:「検索エンジンでの表示」が有効の場合にcontent属性にmax-image-preview:largeを適用する |
はじめに定義されているwp_robots関数が「肝」であり、その中ではwp_robotsフィルターにより、content属性を内容を決定して出力するようになっている。その他の4つの関数は、それぞれ add_filter関数で指定されるもので、 get_option関数で取得できる「検索エンジンでの表示」の設定に応じてcontent属性の指定を変更している。
get_option( 'blog_public' )
wp_robots関数の呼び出し
さてwp_robots関数の使い方だが、標準でwp_headアクションのコールバック関数の1つとして登録されており、テーマやプラグインから呼び出す必要はない。具体的には、通常のページ向けは次のように変更されている。
// 5.6.1
add_action( 'wp_head', 'noindex', 1 );
↓
// 5.7 Beta 1
add_filter( 'wp_robots', 'wp_robots_noindex' );
add_filter( 'wp_robots', 'wp_robots_max_image_preview_large' );
:
略
:
add_action( 'wp_head', 'wp_robots', 1 );
またコメント返信時向けは、wp_headアクションではなく、先に紹介したwp_robotsフィルターで対応するように変更されている。
// 5.6.1
if ( isset( $_GET['replytocom'] ) ) {
add_action( 'wp_head', 'wp_no_robots' );
}
↓
// 5.7 Beta 1
if ( isset( $_GET['replytocom'] ) ) {
add_filter( 'wp_robots', 'wp_robots_no_robots' );
}
このような変更にともない、 noindex関数と wp_no_robots関数は5.7 Beta 1では非推奨になっている。
上記に加え5.7. Beta 1ではログインページ向けのアクションであるlogin_headアクションがwp-login.phpファイルからdefault-filters.phpファイルに移され、wp_robots関数が指定されている。
// 5.0.1~5.6.1 wp-login.php(login_header関数)
add_action( 'login_head', 'wp_sensitive_page_meta' );
↓
// 5.7 Beta 1 default-filters.php
add_action( 'login_head', 'wp_robots', 1 );
実際に出力されるmeta要素
実際に公開ページ(フロント側)とログインページにおいて「検索エンジンでの表示」の設定の違いを適用されているcontent属性の内容で確認してみる。
「検索エンジンでの表示」が有効 | 「検索エンジンでの表示」が無効 | ||
5.7 Beta 1 | 公開ページ | max-image-preview:large | noindex, nofollow |
---|---|---|---|
ログインページ | max-image-preview:large, noindex, noarchive | noindex, nofollow, noarchive | |
5.6.1 | 公開ページ | * meta要素なし | noindex,nofollow |
ログインページ | noindex,noarchive | noindex,noarchive |
5.7 Beta 1では、「検索エンジンでの表示」が有効の場合に「max-image-preview:large」が必ず出力されている。また「検索エンジンでの表示」が無効の場合のログインページでは「nofollow」が追加されるといったところが従来バージョンとの違いといえる。
今回紹介したクローラー向けのmeta要素の変更は多くのテーマやプラグインではほとんど影響しないと思われるが、「変更される」ことは覚えておいたほうがいいだろう。明日にはBeta 2公開ですかね。
最終更新 : 2021年02月09日 13:10
お勧め
get_the_post_thumbnail_caption(2018年5月27日 更新)
nocache_headers(2018年5月27日 更新)
is_year(2018年5月27日 更新)
get_custom_header_markup(2018年5月27日 更新)
show_admin_bar(2012年1月5日 更新)