ワードプレスのwp_robots_no_robotsフィルタの使用方法・解説

概要

wp_robots_no_robotsフィルタは、WordPressのロボットメタ要素に対して、content属性にnoindexなどの値を適用する際に使用されます。このフィルタを活用することで、特定のコンテンツが検索エンジンにインデックスされないように制御できます。主にSEO対策として利用されることが多く、以下のような機能実装時に役立ちます。

  1. 特定の投稿やページを検索結果から除外する
  2. カスタム投稿タイプを検索エンジンにインデックスさせない
  3. メンテナンス中のサイトのインデックス防止
  4. プライベートコンテンツの隠蔽
  5. 特定のタグやカテゴリのページをクロールさせない
  6. セキュリティ上の理由で重要なページを保護
  7. 複製コンテンツを回避するための対策
  8. ランディングページ等の一時的な非インデックス化

構文

apply_filters( 'wp_robots_no_robots', $no_robots, $post );

パラメータ

  • $no_robots (string): 変更前のrobotsメタ要素の値。
  • $post (WP_Post): 現在処理中のポストオブジェクト。

戻り値

フィルタ処理後のrobotsメタ要素の値。

関連する関数

wp_robots_no_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メタタグを設定します。

これらのサンプルコードを参考に、特定のページや投稿に対して柔軟に対策を行うことが可能です。

この関数について質問する


上の計算式の答えを入力してください