it-swarm.dev

NoFollow Intero sito

Per impostazione predefinita ogni volta che si disabilita l'indicizzazione tramite Impostazioni amministratore

[x] Scoraggia i motori di ricerca dall'indicizzare questo sito

Aggiunge un meta tag nell'intestazione in questo modo:

<meta name='robots' content='noindex,follow' />

Come faccio a cambiarlo per essere nofollow invece di follow? Trovo strano che consente "follow" e nel complesso lo vogliono noindex,nofollow.

Potrei echo direttamente in wp_head ma questo non tiene conto di pagine come wp-login e simili.

6
Howdy_McGee

Ho pensato che questa era una grande domanda, quindi sono andato a scavare. In default-filters.php sulla riga 208 c'è add_action('wp_head', 'noindex', 1); a partire da WordPress 4.1. La funzione noindex () a sua volta controlla se hai impostato l'opzione blog_public su 0. Se lo hai, chiama wp_no_robots () che è semplicemente:

function wp_no_robots() {
    echo "<meta name='robots' content='noindex,follow' />\n";
}

Nessuno degli ultimi metodi è filtrabile, ma un semplice plugin farà il trucco per rimuovere il gancio:

/*
 * Declare plugin stuff here
 */

remove_action('wp_head','noindex',1);

Ora sei libero di agganciare la tua azione per echeggiare ciò che desideri.

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";
    }
}
4
Andrew Bartel

Suppongo che questo abbia finito per funzionare per me. Speravo di più in qualche tipo di filtro migliore ma funziona altrettanto bene. Getta questo in un file functions.php e sei a posto.

/** 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 );
2
Howdy_McGee