• Resolvido Sal

    (@salmarinho)


    estou utilizando um tema que usa as categorias como menu de navegação só que várias categorias tem apenas 1 post. Quando clico no link de uma dessas categorias o sistema, como é de se esperar, abre a página da categoria com o excerpt da categoria.

    O que desejo é que nos casos das categorias com apenas 1 post o sistema reconheça que a categoria tem apenas 1 post e redirecionar para a página do post em questão. Algo com a seguinte lógica:

    Se a quantidade de posts na categoria for = 1 pegar o ID do post e redirecionar para url do ID em questão

    Um exemplo é a seguinte página http://www.multibits.com.br/veronica/?cat=6.

A visualizar 4 respostas - de 1 a 4 (de um total de 4)
  • cyclop

    (@cyclop)

    Assim à primeira vista, a forma mais simples é colocares no ficheiro um código que verifique se tem somente um artigo, se tiver, vai tentar encontrar o primeiro ( e único ) artigo dessa categoria fazendo um redirect para esse post:

    <?php
    $oCategoria = get_category(get_query_var('cat'),false);
    if ($oCategoria->count == 1):
    $oQuery= new WP_Query( array('cat='.get_query_var('cat')));
    if( $oQuery->have_posts() ) : $oQuery->the_post();
    ?>
    <script>window.location="<?php the_permalink(); ?>"</script>
    <?php
    endif;
    endif;
    ?>

    PS: Não testei

    Thread Starter Sal

    (@salmarinho)

    infelizmente não funcionou por completo.

    a parte de reconhecer se a categoria tem apenas 1 post está funcionando perfeitamente e o código está fazendo um redirecionamento mas o problema é que sempre redireciona para o post mais recente.

    já testei atribuindo uma data de postagem mais recente para outros posts e o comportamento se mantem.

    cyclop

    (@cyclop)

    Bahhhh, burrisse minha^^

    Onde tem $oQuery= new WP_Query( array(‘cat=’.get_query_var(‘cat’)));
    Troca por $oQuery= new WP_Query(‘cat=’.get_query_var(‘cat’));

    Thread Starter Sal

    (@salmarinho)

    funcionou perfeitamente.

    bastou colocar o código no final do arquivo header.php. o código ficou assim:

    <?php
    $oCategoria = get_category(get_query_var('cat'),false);
    if ($oCategoria->count == 1):
    $oQuery= new WP_Query('cat='.get_query_var('cat'));
    if( $oQuery->have_posts() ) : $oQuery->the_post();
    ?>
    <script>window.location="<?php the_permalink(); ?>"</script>
    <?php
    endif;
    endif;
    ?>

    muito obrigado e espero poder retribuir a ajuda um dia.

A visualizar 4 respostas - de 1 a 4 (de um total de 4)
  • O tópico ‘Redirecionar página de categoria com apenas 1 post para o post dela’ está fechado a novas respostas.