概要
wp_robots_no_robotsフィルタは、WordPressのロボットメタ要素に対して、content属性にnoindexなどの値を適用する際に使用されます。このフィルタを活用することで、特定のコンテンツが検索エンジンにインデックスされないように制御できます。主にSEO対策として利用されることが多く、以下のような機能実装時に役立ちます。
- 特定の投稿やページを検索結果から除外する
- カスタム投稿タイプを検索エンジンにインデックスさせない
- メンテナンス中のサイトのインデックス防止
- プライベートコンテンツの隠蔽
- 特定のタグやカテゴリのページをクロールさせない
- セキュリティ上の理由で重要なページを保護
- 複製コンテンツを回避するための対策
- ランディングページ等の一時的な非インデックス化
構文
apply_filters( 'wp_robots_no_robots', $no_robots, $post );
パラメータ
$no_robots(string): 変更前のrobotsメタ要素の値。$post(WP_Post): 現在処理中のポストオブジェクト。
戻り値
フィルタ処理後のrobotsメタ要素の値。
関連する関数
使用可能なバージョン
WordPress 4.0以降。
コアファイルのパス
wp-includes/general-template.php
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | 〇 |
| template_redirect | |
| get_header | |
| wp_head | 〇 |
サンプルコード
サンプルコード1: 特定の投稿にnoindexを適用する
add_filter('wp_robots_no_robots', 'add_noindex_to_specific_post', 10, 2);
function add_noindex_to_specific_post($no_robots, $post) {
if ($post->ID === 123) { // 投稿IDが123の場合
return 'noindex';
}
return $no_robots;
}
このサンプルコードは、特定の投稿(IDが123)の場合にnoindexメタタグを追加します。
サンプルコード2: カスタム投稿タイプをnoindexにする
add_filter('wp_robots_no_robots', 'noindex_custom_post_type', 10, 2);
function noindex_custom_post_type($no_robots, $post) {
if ($post->post_type === 'custom_type') { // カスタム投稿タイプのチェック
return 'noindex';
}
return $no_robots;
}
このコードは、カスタム投稿タイプが表示される際にnoindexを適用します。
サンプルコード3: メンテナンス中のサイトでnoindexを設定
add_filter('wp_robots_no_robots', 'set_noindex_during_maintenance', 10);
function set_noindex_during_maintenance($no_robots) {
if (defined('WP_MAINTENANCE_MODE') && WP_MAINTENANCE_MODE) {
return 'noindex';
}
return $no_robots;
}
このサンプルでは、サイトがメンテナンスモードの場合にnoindexを設定します。
サンプルコード4: 特定のタグページにnoindexを適用
add_filter('wp_robots_no_robots', 'noindex_tag_pages', 10, 2);
function noindex_tag_pages($no_robots, $post) {
if (is_tag()) { // タグページであるかを確認
return 'noindex';
}
return $no_robots;
}
このコードは、タグページを表示する際にnoindexを追加します。
サンプルコード5: ampページにnoindexを適用
add_filter('wp_robots_no_robots', 'noindex_amp_pages', 10, 2);
function noindex_amp_pages($no_robots, $post) {
if (has_post_format('amp')) { // AMP形式のポストの場合
return 'noindex';
}
return $no_robots;
}
このサンプルは、AMP形式の投稿に対してnoindexメタタグを設定します。
これらのサンプルコードを参考に、特定のページや投稿に対して柔軟に対策を行うことが可能です。