Redirecionamento automático de posts wordpress sem plugin

Se você trabalha com wordpress, provavelmente já se deparou com a necessidade de por algum motivo ter que fazer um redirecionamento algum post para outra url.

De uma maneira geral isso é muito fácil, pois é só incluir um código de redirecionamento nesse post ou usar um dos muitos plugins que existem para este fim.

O problema é quando você precisa de redirecionar postagens específicas para endereços específicos e elas são muitas.

Quando você deve usar esse redirecionamento:

Um exemplo que vou citar aqui é o seguinte:

Imagina que você resolveu trocar alguns de seus posts para um site diferente. Você comprou um domínio específico, fez todas as configurações necessárias, copiou os posts e etc…

Agora você quer que os posts das categorias x e y sejam redirecionadas para esse seu novo domínio sem perder a autoridade deles nos buscadores, sem perder os visitantes orgânicos e etc…

Isso aconteceu comigo e eu pesquisei muito, testei bastante, até que encontrei uma solução para o meu problema e resolvi postar aqui para vocês, caso tenham a necessidade também.

Para redirecionar postagens de determinadas categorias para outra url basta você abrir o arquivo “functions.php” do seu tema e inserir o seguinte código nele:

//-----------Código para redirecionar posts de algumas categorias para outra url-----------------
add_action('template_redirect', 'post_redirect_by_custom_filters');
function post_redirect_by_custom_filters() {
    global $post;
    // this array can contain category names, slugs or even IDs.
    $catArray = ['categoria1','categoria2','categoria3','categoria4'];
    if (is_single($post->ID) && has_category($catArray, $post)) {
        $new_url = "https://www.outroendereco.com/{$post->post_category}/{$post->post_name}/";  
        wp_redirect($new_url, 301);
        exit;
    }
}
//-----------Fim do código para redirecionar posts de algumas categorias para outra url-----------

Oque você deve alterar nesse código de redirecionamento:

Você deverá alterar os textos [‘categoria1′,’categoria2′,’categoria3′,’categoria4’] para os slugs das respectivas categorias que você deseja redirecionar, por exemplo: [‘carros’,’motos’,’caminhoes’,’onibus’] .

Além disso você também deverá alterar o endereço do campo $new_url = “https://www.outroendereco.com/ para o seu novo endereço, exemplo: $new_url = “https://www.sitesobreveiculos.com/ .

Sendo assim, o código já com as modificações que eu citei no exemplo acima ficaria dessa forma:

//-----------Código para redirecionar posts de algumas categorias para outra url-----------------
add_action('template_redirect', 'post_redirect_by_custom_filters');
function post_redirect_by_custom_filters() {
    global $post;
    // this array can contain category names, slugs or even IDs.
    $catArray = ['carros','motos','caminhoes','onibus'];
    if (is_single($post->ID) && has_category($catArray, $post)) {
    $new_url = "https://www.sitesobreveiculos.com/{$post->post_category}/{$post->post_name}/";  
        wp_redirect($new_url, 301);
        exit;
    }
}
//-----------Fim do código para redirecionar posts de algumas categorias para outra url-----------

Ficou mais fácil de entender agora? Ou ainda está meio confuso? Atente-se aos pequenos detalhes nas mudanças dos Slugs das categorias e Endereço.

Observe que após o endereço você tem a continuação da linha do PHP com o seguinte código: {$post->post_category}/{$post->post_name}/”; Isso quer dizer que no novo site, os slugs e categorias dos posts migrados devem ser os mesmos do domínio anterior, assim quando o visitante acessar www.seusiteantico.com/carros/slug_do_post automaticamente será redirecionado para www.sitesobreveiculos.com/carros/slug_do_post.

E aí, gostaram? Tem outra forma de fazer isso mais fácil? Deixe sua dica ou perguntas nos comentários abaixo.

Até a próxima!

Sair da versão mobile