概要
wp_robots_sensitive_page
フィルタは、特定のページに対してrobots
メタ要素のcontent
属性にnoindex
とnoarchive
を適用するために使用されます。このフィルタは、主に次のような機能を実装する際に有用です。
- 検索エンジンによるページのインデックスを避ける。
- 検索エンジンのキャッシュを無効にする。
- 一時的なコンテンツを非公開にする。
- テスト環境や開発環境のページを隠す。
- プライベートな情報を含むページのインデックスを防ぐ。
- エラーや404ページをインデックスさせない。
- 特定のユーザー権限のページを保護する。
- SEO対策の一環として、特定コンテンツのインデックスを管理する。
構文
add_filter('wp_robots_sensitive_page', 'your_callback_function');
パラメータ
$content
(string): 既存のrobotsメタ要素のcontent属性の値。
戻り値
- (string): 変更されたrobotsメタ要素のcontent属性の値。
関連する関数
https://refwp.com/?titleonly=1&s=wp_robots_sensitive_page
使用可能なバージョン
このフィルタはWordPress 4.0以降で使用可能です。
コアファイルのパス
wp-includes/vars.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とnoarchiveを設定する
add_filter('wp_robots_sensitive_page', function($content) {
if (is_page('sensitive-page')) {
return 'noindex, noarchive';
}
return $content;
});
このコードは、特定のページ(sensitive-page
)に対してnoindex
とnoarchive
を適用します。
サンプル2: カスタム投稿タイプに適用する
add_filter('wp_robots_sensitive_page', function($content) {
if (is_singular('custom_post_type')) {
return 'noindex, noarchive';
}
return $content;
});
このコードは、カスタム投稿タイプの単一表示(custom_post_type
)にnoindex
とnoarchive
を適用します。
サンプル3: ログインユーザー専用ページに適用
add_filter('wp_robots_sensitive_page', function($content) {
if (is_page('user-profile') && !is_user_logged_in()) {
return 'noindex, noarchive';
}
return $content;
});
このコードは、ログインしていないユーザーがアクセスする場合にuser-profile
ページに対してnoindex
とnoarchive
を適用します。
サンプル4: 全ての404ページにnoindexを設定する
add_filter('wp_robots_sensitive_page', function($content) {
if (is_404()) {
return 'noindex, noarchive';
}
return $content;
});
このコードは、404エラーページに対してnoindex
とnoarchive
を適用します。
サンプル5: 特定のユーザー権限を持つページに
add_filter('wp_robots_sensitive_page', function($content) {
if (current_user_can('editor') && is_page('editor-only-page')) {
return 'noindex, noarchive';
}
return $content;
});
このコードは、エディターロールを持つユーザーがアクセスする特定のページに対してnoindex
とnoarchive
を適用します。