<meta name=robots content="noindex,follow"/>
からwp_head
という行だけを削除する必要がありますが、remove_action()
と一緒に使用するための正しいフックが見つかりません。
<meta name=robots content="noindex,follow"/>
基本的に私が達成したいのは、ヘッダからこの行だけを削除することですが、検索ページのためだけです。したがって、この場合は次のようなものを使用します。
if ( is_search() ) { remove_action('wp_head', 'whatever-the-action-name-is'); }
私はそれを手に入れました、出力は WordPress SEO pluginによって制御されます。これはサイトで有効になっているので、プラグインファイルに小さなハードコードを書く必要がありました class-frontend.php
明らかに、私はこの汚い回避策はそれほど好きではありませんが、検索ページにそのメタを出力することでうまくいきます。
Class-frontend.phpプラグインファイルでは、552行目をこれで置き換える必要がありました。
if ( is_search() ) { $robots['follow'] = 'nofollow'; } else { $robots['follow'] = 'follow'; }
add_filter('wpseo_robots', 'yoast_no_home_noindex', 999);
function yoast_no_home_noindex($string= "") {
if (is_home() || is_front_page()) {
$string= "index,follow";
}
return $string;
}
これは大丈夫だと思います..あなたのテーマのfunctions.phpのどこかに、そしてトリックをするべきです。
私の他の回答に対するあなたのコメントを基にして、WordPressコアソースのより徹底的な調査(特に default-filters.php )の後に、「このサイトのインデックス作成から検索エンジンを阻止する」を明示的に有効にしたいこれはおそらくあなたがやっていたことだと思います。
add_action( 'posts_selection', 'indexSearchPage' );
function indexSearchPage() {
// Be sure to include the priority for the action or it won't be removed
if( is_search() )
remove_action( 'wp_head', 'noindex', 1 );
}
私はposts_selection
アクションフックを使用します。これは コンディショナルタグ にアクセスするWordPressのロードルーチンの最初のフックです。 wp_head
までの後のアクションを使用できますが、wp_head
自体を使用する場合は、noindex
が1
の優先順位で追加されるため、1
より低い優先順位でアクションを追加する必要があります。
add_action( 'wp_head', 'indexSearchPage', -1 );
あるいは、条件付きでWordPressを "検索エンジンによるこのサイトのインデックス作成をやめさせる"ことを無効にすることができます。
add_action( 'posts_selection', 'indexSearchPage' );
function indexSearchPage() {
if( is_search() ) {
$alloptions = wp_load_alloptions();
$alloptions[ 'blog_public' ] = '1';
wp_cache_set( 'alloptions', $alloptions, 'options' );
wp_cache_set( 'blog_public', '1', 'options' );
}
}
ダッシュボードのSettings > Reading
から[このサイトのインデックス作成を禁止する]チェックボックスをオフにして(サイトのすべてのページからロボット関連のメタタグを削除する)、手動でメタタグを手動で追加することをお勧めします。以下のように、条件付きのテーマのヘッダ
if( ! is_search() )
echo( '<meta name="robots" content="noindex,nofollow" />' );
あなたは望みの効果を達成するために条件を変えなければならないかもしれません、しかし私はあなたが考えを得ると思います。
テーマを変更したくない場合は、それをwp_head
アクションフックに添付することができます。
add_action( 'wp_head', 'noRobots' );
function noRobots() {
if( ! is_search() )
echo( '<meta name="robots" content="noindex,nofollow" />' );
}