概要
wp_robots_noindex_embedsフィルタは、WordPressの埋め込みコンテンツに対してrobotsメタタグにnoindexを適用する機能を提供します。このフィルタは、検索エンジンに特定のページをインデックスしないよう指示する際に特に有用です。以下のような状況でよく使用されます。
- 既存のページを重複する埋め込みコンテンツから保護する場合
- プライベートなコンテンツを検索エンジンに表示させたくないとき
- ページ速度向上のため、検索を回避させる必要があるとき
- 特定のメディアコンテンツへのアクセスを制限したい場合
- SEO施策の一環として、無駄なページのインデックスを防ぐ場合
- 特定のユーザーグループのみに表示する埋め込みコンテンツの保護
- サイト内の重複コンテンツを整理するため
- 埋め込みコンテンツが他のサイトからの流入を防ぐ必要がある場合
このフィルタは、wp_headアクションと連携して実行されます。
構文
add_filter('wp_robots_noindex_embeds', 'your_custom_function');
パラメータ
boolean $noindex: 現在のnoindex設定を示す真偽値。
戻り値
boolean:noindexを適用するかどうかの設定を示す真偽値。
関連する関数
https://refwp.com/?titleonly=1&s=wp_robots_noindex_embeds
使用可能なバージョン
WordPress 4.4以降で使用可能です。
コアファイルのパス
wp-includes/class-wp-embed.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_noindex_embeds', '__return_true');
このコードは、すべての埋め込みコンテンツに対してnoindexを適用します。
サンプルコード 2: 特定の条件でnoindexを適用
add_filter('wp_robots_noindex_embeds', 'custom_noindex_condition');
function custom_noindex_condition($noindex) {
if (is_single() && has_category('noindex')) {
return true;
}
return $noindex;
}
このコードは、特定のカテゴリーに属する投稿に対してのみnoindexを適用します。
サンプルコード 3: 管理者ユーザーにはnoindexを無効化
add_filter('wp_robots_noindex_embeds', 'exclude_admin_users');
function exclude_admin_users($noindex) {
if (current_user_can('administrator')) {
return false;
}
return $noindex;
}
このコードは、管理者ユーザーがアクセスする際にはnoindexを無効にします。
サンプルコード 4: URLパラメータに基づいてnoindex
add_filter('wp_robots_noindex_embeds', 'check_url_parameter');
function check_url_parameter($noindex) {
if (isset($_GET['noindex']) && $_GET['noindex'] == 'true') {
return true;
}
return $noindex;
}
このコードは、URLパラメータnoindex=trueが存在する場合にnoindexを適用します。
サンプルコード 5: 特定の投稿タイプに対してnoindex適用
add_filter('wp_robots_noindex_embeds', 'custom_post_type_noindex');
function custom_post_type_noindex($noindex) {
if (get_post_type() == 'custom_type') {
return true;
}
return $noindex;
}
このコードは、特定のカスタム投稿タイプに対してnoindexを適用します。