Suporte » Desenvolvendo com WordPress » listar títulos por autor E por determinada categoria

  • Resolvido wmker

    (@wmker)


    alou. preciso de ajuda. estou procurando alternativas e está difícil de encontrar solução para este problema.

    o caso: estou construindo um blog que tem diversos autores. Para os autores foram determinadas “n” categorias, sendo que seus posts devem estar vinculados a uma categoria apenas. podem existir inumeros posts de cada autor, no entanto, um post terá somente uma categoria.

    o problema: pretendo que na página de um Autor X sejam listados os títulos dos posts DESTE autor em SOMENTE UMA das categorias.

    alguém sabe como resolver essa?
    agradeço toda a ajuda.

    :] WMK

Visualizando 15 respostas - 16 até 30 (de um total de 33)
  • Opa!
    Não é que funcionou, Renato!!
    Blz!!!

    Grande força! Valeuziz mesmo!!!

    :] WMK

    Mas, não querendo abusar, porque preciso de ajuda mesmo… ainda tem uma coisinha…

    Partindo da minha pergunta inicial e aprimorando-a, pergunto: -Tem como se utilizar deste script e juntá-lo na página do autor (author.php) de modo que ao selecionar um autor (no menu lateral) apareça na página dele somente os nomes das categorias nas quais ele já postou, e que ao se clicar no nome da categoria apareçam os seus posts nesta categoria? Tudo isso num único php. É possível?

    Retomo a pergunta porque o problema ainda é o original: mostrar as categorias (com posts) de um unico autor, sabendo que todos os autores usam as mesmas categorias.

    Se der prá matar essa charada, tá feito!

    De todo modo, agradeço muito a ajuda que me deram até agora! Já tenho meio caminho andado. Valeu mesmo!

    Continuo na busca.

    :] WMK

    Grande get_posts().

    Pro teu outro problema, vou misturar o get_posts que o Renato colocou. Só adicionei um condicional pra saber se a variável $myposts tá ou não vazia. Se ela estiver, não tem por que mostrar o nome da categoria (a não ser que tu prefira assim). Ele deve listar pra você as categorias do autor já chamado no author.php:

    <?php if(have_posts()) : the_post(); ?>
    	<?php $categorias = get_categories(); ?>
        <div>
        	<h2><?php the_author(); ?></h2>
        	<span><?php echo get_avatar(get_the_author_ID()); ?></span>
    
    		<?php foreach ($categorias as $categoria) : ?>
    
    			<?php $myposts = get_posts('cat='.$categoria->term_id.'&author='.get_the_author_ID());?>
    
    	    	<?php if (!empty($myposts)) : ?>
    	    	<h3><?php echo $categoria->cat_name; ?></h3>
    	    	<ul>
    	    	<?php foreach($myposts as $post) :?>
    	    		<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    		    	<?php endforeach; ?>
    	    	</ul>
    	    	<?php endif; ?>
    
    		<?php endforeach; ?>
    	</div>
    	<?php endif; ?>

    Grande get_post com certeza!

    Cara, tá ficando beleza isso! Grande força mesmo. Beleza pura total!!

    Agora pergunto: como faço para que não apareça o nome da categoria que não tem posts do referido autor??

    Agradeço por mais esta!

    Falooouu…

    Valeu!

    :] WMK

    Opa! Bobeada minha! Já não estão aparecendo as categorias sem posts. :\
    Então, obrigado por essa!

    Resolvido este problema!

    Grande abraço,
    e ótimo trabalho para todos aí!

    :] WMK

    Eduardo, tive que abrir novamente este tópico porque me apareceu um problema que não consigo resolver.

    Do jeito que está o script está muito bom e funcionando.
    Porém, preciso saber:

    Como mostrar ANTES da lista dos post uma lista só com o nome das categorias que já receberam post daquele autor, de modo que ao clicar no nome da categoria a página pule para a lista de posts propriamente. Sei que posso fazer isso com “#name” e tal, mas não sei como colocar a lista em linha das categorias existentes ANTES da lista de categorias+titulos, especificamente logo abaixo do header. Sacou?

    Algo assim:

    – HEADER –
    – categoria 1 | categoria 2 | categoria 5 | categoria 8 –
    – LISTA dos títulos de posts por categoria –
    – e o resto das coisas… –

    Se puderem me ajudar, mais uma vez agradeço imensamente.

    Valeu!

    :] WMK

    Primeiramente agradecendo toda a ajuda a mim dispensada e também desculpando-me pela minha insistência, mas super disposto a resolver esse trecho do site, encontrei uma solução que está bem adequada ao que preciso mas, (sempre tem esse “mas”), não consigo adaptar a solução ao script “posts por autor” (versão do post 1310 neste tópico) aqui debulhado e funcionando.

    Vi em “http://szub.net/vea/” que tem o que preciso. Logo abaixo do header tem “Categories on this page: … “. E é isso aí que é preciso ajustar ao script. Algo bem assim mesmo!

    Tem como fazer esse ajuste? Ou será necessário refazer todo o script do
    “posts por autor”?

    Fico no aguardo.
    Faloou!
    Valeu!!

    :] WMK

    Alou! Eu de novo….

    Apareceu um outro problema. É a paginação “Next and Previous Links” que não está funcionando neste author.php. Por exemplo, um determinado autor tem 13 posts, mas na barra inferior de navegação (wp-pagenavi) aparece como se existissem mais de 5 páginas! Porém, todas mostram o mesmo conteúdo, e não mostram os 13 posts (pois configurei para 10 por página)… ficando faltantes os demais.

    Tanto o “Next and Previous Links” padrão do WP, quanto o “wp-pagenavi plugin” apresentam o mesmo problema.
    Creio que o Get_Posts tem algo a ver com isso.
    Alguma idéia ou solução??

    o código tá aqui:

    <?php if(have_posts()) : the_post(); ?>
    	<?php $categorias = get_categories('exclude=27'); ?>
    
        <div id="post_auth">
        	<h2><?php the_author(); ?></h2>
        	<span><?php echo get_avatar(get_the_author_ID()); ?></span>
    
    		<?php foreach ($categorias as $categoria) : ?>
    
    			<?php $myposts = get_posts('cat='.$categoria->term_id.'&amp;author='.get_the_author_ID());?>
    
    	    	<?php if (!empty($myposts)) : ?>
    
    	    	<div class="tita"><?php echo $categoria->cat_name; ?></div>
        	    <div class="entrya">
    	    	<ul>
    	    	<?php foreach($myposts as $post) :?>
    	    	<li><?php the_post_thumbnail();?> » <b><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></b> <?php the_excerpt(); ?></li>
    		<?php endforeach; ?>
    	    	</ul>
        	    </div>
    
    	    	<?php endif; ?>
    
    		<?php endforeach; ?>
    	</div>
    
      	<div class="navigation"><?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?></div>
    
    	<?php else : ?>
    
    		<p>Nada encontrado. Tente nova busca.</p>
    
    	<?php endif; ?>

    Agradeço por mais esta mão!
    (além do post anterior… 😉

    Valeu!

    :] WMK

    Não testei nem sei se vai dar certo, mas faz o teste com os parâmetros de paginação e avisa pra gente aqui!

    Blz, Eduardo, valeu a dica… mas não sei bem como fazer no script atual. Testei de algumas maneiras (a lá meu jeito mesmo, por tentativa e erro) mas não deu certo em nada.

    Pelo que vi na seção que indicou, os parametros de paginação funcionam com o query_posts, e o nosso script aqui chama o get_posts.

    Vi também que o WP-pagenavi plugin não funciona com query_posts. E sobre o get_posts estou aguardando resposta deles. Espero que venha alguma coisa boa de lá, mas tá demorando…

    De qualquer modo, neste caso a melhor solução é a que vale. Portanto, tanto faz para mim utilizar o plugin ou o modo padrão de paginação do wordpress. O que importa é a paginação funcionar.

    Se tiveres alguma boa idéia ou solução, manda bala que tou por aqui!

    In addition to the parameters listed below under “WordPress 2.5 And Older”, get_posts() can also take the parameters that query_posts() can since both functions now use the same database query code internally.

    Na teoria, ele deve funcionar sim! De qualquer forma, eu tento depois também.

    Pois é, Eduardo. Não consegui acertar o código. Tentei de diversas formas, mas não deu. Sempre dá o mesmo problema, aparecem todos os posts do autor numa mesma página e a paginação indica que tem mais uma pagina na sequencia, porém esta mostra os mesmos posts.

    Preciso de ajuda.

    :] WMK

    Esqueci completamente deste post. Wmker, você conseguiu fazer funcionar?

    Vou ressucitar o tópico.

    WMK, dá uma olhada neste tópico aqui. Tive um problema parecido esses dias e isso aí me resolveu perfeitamente.

    pra funcionar com paginação você tem que passar para a função get_posts() o que está vindo na querystring:

    <?php $myposts = get_posts($query_string . '&cat='.$categoria->term_id.'&author='.$user_id);?>

Visualizando 15 respostas - 16 até 30 (de um total de 33)
  • O tópico ‘listar títulos por autor E por determinada categoria’ está fechado para novas respostas.