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

概要

wp_robots_sensitive_pageフィルタは、特定のページに対してrobotsメタ要素のcontent属性にnoindexnoarchiveを適用するために使用されます。このフィルタは、主に次のような機能を実装する際に有用です。

  1. 検索エンジンによるページのインデックスを避ける。
  2. 検索エンジンのキャッシュを無効にする。
  3. 一時的なコンテンツを非公開にする。
  4. テスト環境や開発環境のページを隠す。
  5. プライベートな情報を含むページのインデックスを防ぐ。
  6. エラーや404ページをインデックスさせない。
  7. 特定のユーザー権限のページを保護する。
  8. 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)に対してnoindexnoarchiveを適用します。

サンプル2: カスタム投稿タイプに適用する

add_filter('wp_robots_sensitive_page', function($content) {
    if (is_singular('custom_post_type')) {
        return 'noindex, noarchive';
    }
    return $content;
});

このコードは、カスタム投稿タイプの単一表示(custom_post_type)にnoindexnoarchiveを適用します。

サンプル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ページに対してnoindexnoarchiveを適用します。

サンプル4: 全ての404ページにnoindexを設定する

add_filter('wp_robots_sensitive_page', function($content) {
    if (is_404()) {
        return 'noindex, noarchive';
    }
    return $content;
});

このコードは、404エラーページに対してnoindexnoarchiveを適用します。

サンプル5: 特定のユーザー権限を持つページに

add_filter('wp_robots_sensitive_page', function($content) {
    if (current_user_can('editor') && is_page('editor-only-page')) {
        return 'noindex, noarchive';
    }
    return $content;
});

このコードは、エディターロールを持つユーザーがアクセスする特定のページに対してnoindexnoarchiveを適用します。

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


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