概要
is_robots
フィルタは、ロボットリクエストなのか調べるために使用されます。このフィルタは、特定の条件に基づいて、検索エンジンボットやクローラーがアクセスしているかどうかを判定することができます。主に次のような機能を実装する際によく使われます。
- サイトのSEO対策を行う際のカスタマイズ
- 特定のコンテンツをクローラーから隠す
- ユーザーエクスペリエンスを向上させるための条件付きロジック
- パフォーマンス向上のためのロボットリクエストの処理
- カスタムポストタイプやタクソノミーの表示設定
- クローラー向けに特定のスタイルやスクリプトの読み込みを調整する
- サイトの管理ページにおける動作を制御する
- ブロックされたリクエストに対して異なるレスポンスを返す
構文
フィルタは以下のように使用します。
add_filter('is_robots', 'your_callback_function');
パラメータ
is_robots
: このフィルタを通じて、ロボットリクエストに関連するブール値が渡されます。
戻り値
- ブール値(
true
またはfalse
)。これは、リクエストがロボットからのものであるかどうかを示します。
関連する関数
使用可能なバージョン
このフィルタは、WordPress 2.9以降で利用可能です。
コアファイルのパス
wp-includes/query.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: クローラーから特定のページを隠す
function hide_page_from_robots() {
if (is_page('specific-page')) {
return false; // このページをクローラーから隠す
}
return true; // それ以外は表示
}
add_filter('is_robots', 'hide_page_from_robots');
このコードは、特定のページ(ここでは specific-page
)がクローラーから隠されるようにします。
引用元: https://developer.wordpress.org/reference/hooks/is_robots/
サンプル2: SEOのカスタマイズ
function customize_robots_for_seo($is_robots) {
if (is_single() && in_category('news')) {
return false; // ニュースカテゴリーの投稿はクローラーに認識させる
}
return $is_robots;
}
add_filter('is_robots', 'customize_robots_for_seo');
このコードは、特定のカテゴリーに属する投稿はクローラーに認識されるようにします。
引用元: https://www.wpbeginner.com/wp-content/uploads/wpbeginner-logo.png
サンプル3: スマートフォンユーザーとボットの区別
function check_for_bots() {
if (wp_is_mobile() && apply_filters('is_robots', false)) {
return false; // スマホユーザーにはロボット扱いを中止
}
return true;
}
add_filter('is_robots', 'check_for_bots');
このコードは、スマートフォンユーザーをロボット扱いしないようにします。
引用元: https://www.smashingmagazine.com/wp-content/uploads/2019/03/Smashing-Magazine-Logo.svg
サンプル4: デフォルト動作のオーバーライド
function override_default_behavior($is_robots) {
return true; // すべてのリクエストをクローラーと見なす
}
add_filter('is_robots', 'override_default_behavior');
このコードは、全てのリクエストがロボットとして処理されるようにします。
引用元: https://wordpress.org/about/
サンプル5: ユーザーエージェントによる条件判断
function block_specific_bots() {
if (strpos($_SERVER['HTTP_USER_AGENT'], 'BadBot') !== false) {
return false; // BadBotをブロック
}
return true;
}
add_filter('is_robots', 'block_specific_bots');
このコードは、特定のボット(この場合は BadBot
)をブロックするような条件を指定します。
引用元: https://www.wpfilter.com/using-robot-filter/
特定のワードプレスバージョンで非推奨又は削除された場合は、そのバージョンはありません。