Suporte » Plugins » Loop de categoria com link "Ver mais"

  • Resolvido ClaaauS

    (@claaaus)


    Bom dia!

    Primeiramente, procurei a seção certa pra postar isso mas caso tenha postado errado, me desculpem.
    Pesquisei bastante também mas não consegui localizar meu problema. Vou explicar.

    Estou fazendo várias seções de LOOPS na página inicial do meu site.
    Tenho categorias, por exemplo: JOBS, WEBSITES, BLOG.
    Em cada loop eu puxo os posts de determinada categoria (Jobs, Websites…)

    Consegui fazer isso e limitei a quantidade pelo “showposts=N”.

    Gostaria de acrescentar após o ultimo post um texto “ver mais +” que mande para uma página com TODOS os posts da categoria específica.

    Não sei se estou usando um bom código, pois comecei a mexer com WordPress do zero e sem ninguém pra ajudar, só fuçando mesmo. Vou colocar meu código do loop atual aqui.

    <?php
    query_posts("category_name=websites&showposts=5");
    
    if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
    	<div id="quadrowebsite">
    	<a href="<?php the_permalink() ?>" class="artigo"><?php the_post_thumbnail(); ?><br><br>
    	<?php the_title(); ?></a>
                    </div>   
    
    <?php endwhile?>
    
    <?php else: ?>
    
    <?php endif; 
    
    ?>

    Agradeço desde já!

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • ClaaauS, veja essa topico (http://stackoverflow.com/questions/2402808/get-the-category-name-category-link-inside-the-loop-in-wordpress). Fala exatamente sobre o que você precisa, é algo com get_the_category.

    Se não conseguir me avisa ai.

    Opa Everaldo, valeu pela resposta!

    Dei uma olhada no tópico que você postou mas não consegui pegar muita coisa.

    Com isso já consegui fazer o link pra categoria: (Coloquei depois do “ENDWHILE” do meu código, assim quando termina o ciclo de repetição ele imprime isso.

    <?php foreach(get_the_category() as $category)
    {
        echo '<a href="'.get_category_link($category->cat_ID).'">Ver Todos</a>';
    }
    ?>

    Mas não sei como fazer pra aparecer isso somente se exceder a quantidade de posts. Por exemplo: Tenho 3 posts na categoria “Jobs” e tá pra exibir só os dois últimos. Aí nesse caso deve aparecer o “Ver Todos” com o link. Mas caso tenha só dois mesmo não aparecer.

    Imaginei que pra fazer isso teria que fazer um IF de Quantidade posts na categoria > quantidade de posts exibidos.

    Mas, como sou MUITO leigo em PHP não tive muita ideia de como fazer.

    Pode me ajudar?

    Legal, se essa primeira parte funcionou, OK.

    A segunda, vamos fazer com o if {}; mesmo.

    Adicione essa função no seu functions.php, ela conta os posts de determinada categoria:

    function count_posts( $slug ) {
    	$args = array(
    		'category_name' => $slug,
    		'showposts' => -1,
    		'caller_get_posts' => 1
    	);
    	$countposts = get_posts( $args );
    
    return count($countposts);
    }

    E no seu loop, depois do endwhile, cole esse trecho:

    foreach(get_the_category() as $category) {
    	$link = '<a href="'.get_category_link($category->cat_ID).'">Ver Todos</a>';
    }
    
    $limite = 2;
    $contando = count_posts( $category->slug );
    if ( $contando > $limite ) {
    	echo $link;
    }

    Não consegui desenvolver rapidamente uma estrutura para testar aqui. Veja ai se funciona e se é isso mesmo e nos retorna.

    Pô Everaldo, valeu mesmo cara, funcionou direitinho!

    Testei com mais e menos quantidades e funcionou certinho. Valeeeeeeeeeu!

    Opa.. tranquilo Claaaus. Veja se entende o código, o que ele faz, qualquer dúvida posta ai.

    Por favor, encerra ai o post como [resolvido].

    Abraço.

    Entendi o código sim. Já programei um pouco em C# e não muda muito a estrutura. Eu só não sabia montar em PHP que é novo pra mim, e WordPress também 😀

    Já encerrei como resolvido. Obrigado!

    Abraço!

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • O tópico ‘Loop de categoria com link "Ver mais"’ está fechado para novas respostas.