Par défaut, chaque fois que vous désactivez l'indexation via les paramètres administrateur
[x] Décourager les moteurs de recherche d'indexer ce site
Il ajoute une balise meta dans l'en-tête comme ceci:
<meta name='robots' content='noindex,follow' />
Comment puis-je changer cela pour être nofollow
au lieu de follow
? Je trouve cela étrange de permettre le suivi et, globalement, de le vouloir noindex,nofollow
.
Je pourrais faire un écho directement dans wp_head
mais cela ne compte pas pour les pages telles que wp-login et les goûts.
Pensant que c'était une excellente question, je suis allé creuser. Dans default-filters.php à la ligne 208, il y a add_action('wp_head', 'noindex', 1);
à partir de WordPress 4.1. La fonction noindex () vérifie à son tour si vous avez défini l'option blog_public sur 0. Si c'est le cas, elle appelle wp_no_robots (), qui est simplement:
function wp_no_robots() {
echo "<meta name='robots' content='noindex,follow' />\n";
}
Aucune des dernières méthodes ne peut être filtrée, mais un simple plugin fera l'affaire pour enlever le crochet:
/*
* Declare plugin stuff here
*/
remove_action('wp_head','noindex',1);
Maintenant, vous êtes libre de créer votre propre action pour faire écho à ce que vous voulez.
add_action('wp_head', 'my_no_follow', 1);
function my_no_follow() {
if ( '0' == get_option('blog_public') ) {
echo "<meta name='robots' content='noindex,nofollow' />\n";
}
}
Je suppose que cela a fini par travailler pour moi. J'espérais davantage trouver un meilleur filtre mais cela fonctionne tout aussi bien. Jetez ceci dans un fichier functions.php
et le tour est joué.
/** No Index No Follow Entire Website **/
function nofollow_meta() {
echo "<meta name='robots' content='noindex,nofollow' />\n";
}
add_action( 'wp_head', 'nofollow_meta', 1 );
add_action( 'login_enqueue_scripts', 'nofollow_meta', 1 );