概要
wp_no_robots
フィルタは、クローラー向けのrobotsメタタグを出力するために使用されるフィルタです。このフィルタを利用することで、特定の条件に応じて検索エンジンのクローラーに対してインデックスを禁止したり、特定のページを無視させたりすることが可能になります。これにより、サイトのSEO戦略を強化したり、プライバシーの保護を図ることができます。以下は、このフィルタがよく使われる際の機能例です。
- 特定のページや投稿を検索エンジンから隠す
- ユーザーロールに応じたメタタグの設定
- 一時的にページを非公開にする際の設定
- 特定のカスタム投稿タイプにのみ適用する
- カスタム条件に基づいたrobotsメタタグの出力
- プライバシーポリシーに従ったメタタグの追加
- テスト環境やステージング環境での使用
- SEOプラグインとの統合
構文
add_filter('wp_no_robots', 'your_callback_function');
パラメータ
$no_robots
:クローラー向けに出力されるrobotsメタタグの内容。
戻り値
- 変更されたロボットメタタグの内容(文字列)。
関連する関数
https://refwp.com/?titleonly=1&s=wp_no_robots
使用可能なバージョン
- WordPress 2.8.0以降で使用可能。
コアファイルのパス
wp-includes/general-template.php
サンプルコード
サンプルコード1
add_filter('wp_no_robots', function($no_robots) {
if (is_page('private')) {
return 'noindex, nofollow';
}
return $no_robots;
});
このコードは、特定のページ(private
というスラッグのページ)に対して、検索エンジンにインデックスされないように設定します。
サンプルコード2
add_filter('wp_no_robots', function($no_robots) {
if (current_user_can('editor')) {
return $no_robots;
}
return 'noindex, nofollow';
});
このコードは、エディターロールを持っているユーザー以外には、全ページに対してインデックスを禁止します。
サンプルコード3
add_filter('wp_no_robots', function($no_robots) {
if (is_single() && get_post_type() == 'custom_post_type') {
return 'noindex';
}
return $no_robots;
});
このコードは、特定のカスタム投稿タイプに対してインデックスを禁止します。
サンプルコード4
add_filter('wp_no_robots', function($no_robots) {
if (is_admin()) {
return 'noindex, nofollow';
}
return $no_robots;
});
このコードは、管理画面へのアクセス時にインデックスを禁止します。
サンプルコード5
add_filter('wp_no_robots', function($no_robots) {
if (is_home() && !is_user_logged_in()) {
return 'noindex';
}
return $no_robots;
});
このコードは、ログインしていない場合、ホームページに対してインデックスを禁止します。
この関数のアクションでの使用可能性
アクション | 使用可否 |
---|---|
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 | 〇 |
非推奨または削除されたワードプレスバージョン
特に非推奨または削除されたバージョンはありません。