it-swarm.dev

NoFollow site inteiro

Por padrão, sempre que você desabilitar a indexação por meio das configurações de administrador

[x] Desencoraje os mecanismos de pesquisa a indexarem este site

Adiciona uma meta tag no cabeçalho da seguinte forma:

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

Como eu altero isso para ser nofollow em vez de follow? Eu acho estranho ativar "follow" e, em geral, quero noindex,nofollow.

Eu poderia echo diretamente em wp_head, mas isso não conta para páginas como wp-login e likes.

6
Howdy_McGee

Pensei que esta era uma ótima pergunta, então eu fui cavar. Em default-filters.php na linha 208 há add_action('wp_head', 'noindex', 1); a partir do WordPress 4.1. A função noindex (), por sua vez, verifica se você definiu a opção blog_public como 0. Se tiver, ela chama wp_no_robots (), que é simplesmente:

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

Nenhum dos últimos métodos são filtráveis, mas um simples plugin fará o truque para remover o gancho:

/*
 * Declare plugin stuff here
 */

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

Agora, você está livre para enganchar sua própria ação para ecoar o que você quer.

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

Eu suponho que isso acabou funcionando para mim. Eu estava mais esperando por algum tipo de filtro melhor, mas funciona tão bem. Jogue isso em um arquivo functions.php e você está pronto para ir.

/** 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