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 - 1 até 15 (de um total de 33)
  • Eduardo

    (@eduardozulian)

    Tipo, xá ver se eu entendi:

    Posts do autor 01

    Categoria 01

    • Post 01
    • Post 03

    Categoria 02

    • Post 10
    • Post 13
    • Post 21

    É isso que você precisa?

    Criador do tópico wmker

    (@wmker)

    Opa… algo assim:

    Autor 1

    Categoria 01

    • post 1
    • post 3
    • post 28

    Categoria 02

    • post 2
    • post 34
    • post 36

    Autor 2

    Categoria 01

    • post 10
    • post 31
    • post 58

    Categoria 02

    • post 20
    • post 39
    • post 46

    o lance são as categorias que tem um mesmo nome para qualquer autor.

    Isso aí tem alguma saída?

    É isso o qe preciso.

    Valeu!

    :] WMK

    Eduardo

    (@eduardozulian)

    Não sei se vai rolar porque não testei, mas o plugin Posts by Author quem sabe faça isso. Caso não funcione, dá uma avisada por aqui que existe sim uma solução e, na minha cabeça, ela parece ser bem simples, haha.

    Até.

    Criador do tópico wmker

    (@wmker)

    Blz, Eduardo! Gracias pela atenção. Mas já testei esse plugin (e outros tantos também), só que ele não é bem o que preciso, principalmente porque não funciona para vários autores num mesmo blog. E além de tudo é bem rudimentar. (O que se poderia fazer é tentar aperfeiçoá-lo…)

    Tou interessado na solução que passa em sua cabeça!
    Eu tb pensei que era bem simples e até agora só me quebrei.

    Mais uma vez, agradeço toda ajuda possível.

    Valeu!

    :] WMK

    Eduardo

    (@eduardozulian)

    <?php
    /*
     * Template name: Posts por autor
     */
    ?>
    <?php get_header(); ?>
    
    	<h1>Posts</h1>
    	<?php $order = 'user_nicename'; ?>
        <?php $user_ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE ID <> 1 ORDER BY $order"); ?>
        <?php $categorias = get_categories(); ?>
    
        <?php foreach($user_ids as $user_id) : ?>
        <?php $user = get_userdata($user_id); ?>
    
        <?php echo get_avatar($user_id, 80); ?>
        <div class="medico">
        	<h2><?php echo $user->display_name; ?></h2>
        	<span><?php get_avatar($user->user_email); ?></span>
    
    		<?php foreach ($categorias as $categoria) : ?>
    
    	    	<?php query_posts('cat='.$categoria->term_id.'&author='.$user_id); ?>
    	    	<?php if (have_posts()) : ?>
    	    	<h3><?php echo $categoria->cat_name; ?></h3>
    	    	<ul>
    		    	<?php while (have_posts()) : the_post(); ?>
    	    		<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    		    	<?php endwhile; endif; ?>
    	    	</ul>
    
    	    <?php endforeach; ?>
    	</div>
    	<hr />
        <?php endforeach; ?>
    
    <?php get_footer(); ?>

    Taí, meu. Deve funcionar. Por padrão, ele só não pega os posts do admin. Nada muito customizável, mas seria algo bacana de transformar em plugin.

    Programadores, deem pitacos.
    Até!

    Criador do tópico wmker

    (@wmker)

    Cara, valeu a tentativa e principalmente a ajuda! Porém, não funçou muito bem não 😉 … Aconteceu que ele lista os post, separados por categorias, ordenados pelos autores… mas aparecem os MESMOS posts em TODOS os autores. 😛

    Realmente é uma boa idéia fazer um plugin para esta função “listar títulos por autor E por determinada categoria”. Quem se habilita???

    Já vi pelos foruns que tem muito cara querendo isso também.

    Encontrei um theme que resolve um pouco essa história: Subtle for WordPress – http://gluedideas.com … e tou trabalhando nele, ajeitando para o que preciso.

    Mas… (sempre tem um “mas”) sua programação é um pouco mais complexa (pelo menos prá mim), e tem funções bem específicas, com a “cara” do theme. Enfim, tá dando prá quebrar o galho, mas tá longe de ser aquela coisa simples que eu tinha em mente.

    Vamolá, Eduardo… vai que sai uma nova solução aí da tua cabeça! Tou na linha aqui, aguardando o que vier.

    Valeu!
    Abs

    :] WMK

    Eduardo

    (@eduardozulian)

    Cara, funcionou aqui. Ele lista os autores e os posts destes autores, divididos por categorias. E não repetiu nada. E teoricamente pra você ele não deveria repetir mesmo, já que tu disse que cada post só vai estar numa categoria, certo?

    De qualquer forma, eu criei uma imagem pra te mostrar como ficou aqui. Era isso que você precisava, não?

    Criador do tópico wmker

    (@wmker)

    hummm… estranho isso… para mim realmente não ficou ordenado como a imagem aí de cima…

    era o que eu precisava sim, mas será preciso verificar porque o filtro de posts por autor não funcionou como deveria no meu caso.

    é possível que algum plugin esteja interferindo?

    Eduardo

    (@eduardozulian)

    Estranho. Faz assim: passa uma imagem de como ficou aí e copia o código aqui no fórum pra gente tentar ver qualé!

    serginhosant

    (@serginhosant)

    Pessoal

    aproveitando esse post, tenho um problema parecido.

    No meu blog (site) vários autores publicam posts. Como faço para em cada post aparecer a foto do dono do post e de todos os outros posts postados por ele.

    abraços

    Criador do tópico wmker

    (@wmker)

    Vamolá, Eduardo… tá aqui a imagem.

    e o código:

    <?php
    /*
     * Template name: Posts por autor
     */
    ?>
    <?php get_header(); ?>
    
    	<h1>Posts</h1>
    	<?php $order = 'user_nicename'; ?>
        <?php $user_ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE ID <> 1 ORDER BY $order"); ?>
        <?php $categorias = get_categories(); ?>
    
        <?php foreach($user_ids as $user_id) : ?>
        <?php $user = get_userdata($user_id); ?>
    
        <?php echo get_avatar($user_id, 40); ?>
        <div class="medico">
        	<h2><?php echo $user->display_name; ?></h2>
        	<span><?php get_avatar($user->user_email); ?></span>
    
    		<?php foreach ($categorias as $categoria) : ?>
    
    	    	<?php query_posts('cat='.$categoria->term_id.'&author='.$user_id); ?>
    	    	<?php if (have_posts()) : ?>
    	    	<h3><?php echo $categoria->cat_name; ?></h3>
    	    	<ul>
    		    	<?php while (have_posts()) : the_post(); ?>
    	    		<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    		    	<?php endwhile; endif; ?>
    	    	</ul>
    
    	    <?php endforeach; ?>
    	</div>
    	<hr />
        <?php endforeach; ?>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    acho que é isso.
    vamo vê qualé.

    faloouu.

    :] WMK

    renato_s

    (@renato_s)

    wmker, tenta adicionar isso aqui lá no finzinho do código e vê se ajuda:

    ...
    	<hr />
    	wp_reset_query(); //Insira esta linha.
        <?php endforeach; ?>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Muitos loops com query_posts numa mesma página pode dar xabu…

    Se essa solução não funcionar, avisa aqui que podemos tentar outra alternativa, que é subtituir os loops como estão por loops feitos com get_posts.

    Criador do tópico wmker

    (@wmker)

    Alou, Renato e Eduardo,
    a solução não funçou… tudo igual.

    Novas alternativas serão bem-vindas!

    Tou no aguardo.
    Valeu!

    :] WMK

    Eduardo

    (@eduardozulian)

    Haha que droga.

    Bem, alguém mais pode testar o código, com e sem a sugestão do Renato? Vamo ver se ele funciona em outras instalações. Aí avisem por aqui.

    renato_s

    (@renato_s)

    Faça um back-up primeiro para evitar surpresas desagradáveis e depois tente assim:

    <?php
    /*
     * Template name: Posts por autor
     */
    ?>
    <?php get_header(); ?>
    
    	<h1>Posts</h1>
    	<?php $order = 'user_nicename'; ?>
        <?php $user_ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE ID <> 1 ORDER BY $order"); ?>
        <?php $categorias = get_categories(); ?>
    
        <?php foreach($user_ids as $user_id) : ?>
        <?php $user = get_userdata($user_id); ?>
    
        <?php echo get_avatar($user_id, 40); ?>
        <div class="medico">
        	<h2><?php echo $user->display_name; ?></h2>
        	<span><?php get_avatar($user->user_email); ?></span>
    
    		<?php foreach ($categorias as $categoria) : ?>
    
    	    	<?php $myposts = get_posts('cat='.$categoria->term_id.'&author='.$user_id);?>
    	    	<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 endforeach; ?>
    	</div>
    	<hr />
        <?php endforeach; ?>
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Depois diz se funcionou.

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