Suporte » Desenvolvendo com WordPress » Lista de posts em ordem alfabética ignorando a primeira palavra

  • Olá!
    Estou fazendo um site para uma clínica e na página da equipe, onde os profissionais estão listados (como se fossem posts) eu deixei em ordem alfabética.

    Porém, o cliente quer que a ordem alfabética ignore as palavras “Dr.” e “Dra.” dos nomes dos médicos, porque as médicas ficam por último na listagem porque começam com “Dra.” e os médicos começam com “Dr.”.

    Tem como a ordem alfabética ignorar as palavras “Dr.” e “Dra.”?
    O site ainda está num endereço teste. Vocês podem ver essa página neste endereço.

    Desde já agradeço a atenção.
    Philipe

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • Olá, amigo.

    Foi vc quem fez a página de arquivos que gera o loop?
    Vc poderia deixar o título do post como “Dr. Fernando Canola Alliegro” e o slug vc deixaria “fernando-canola-alliegro”.

    Assim bastaria ir no loop e ao invés ordenar por título, ordenar por nome:
    ‘orderby’ => ‘name’

    Deu pra sacar?

    Criador do tópico Philipemarostica

    (@philipemarostica)

    Olá Filipe! Grato pela ajuda! Fui eu sim.
    Eu coloque o ‘orderby’ => ‘name’ mas não funcionou. Veja se eu fiz corretamente:
    ========================================================

    <?php query_posts( $query_string . '&orderby=name'); ?>
    			<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
    			<div class="post-equipe">
    
    						<div class="thumb">
    						<a href="<?php the_permalink()?>" rel="bookmark" alt="<?php the_title_attribute();?>" title="Link para <?php the_title_attribute();?>">
    						<?php
    						if ( has_post_thumbnail() ) {
    						the_post_thumbnail();
    						} ?>
    						</a>
    						</div>
    
    						<h2><a href="<?php the_permalink()?>" rel="bookmark" title="Link para <?php the_title_attribute();?>"> <?php the_title();?></a></h2>
    
    						<p><?php the_excerpt(); ?></p>
    
    						<div class="continue">
    						<p><a href="<?php the_permalink()?>" rel="bookmark" alt="<?php the_title_attribute();?> "title="Link para <?php the_title_attribute();?>">Leia mais</a></p>
    						</div>
    			</div>
    
    		<?php endwhile; else: ?>
    		<p>Nenhum post foi encontrado.</p>
    		<?php endif; ?>

    ========================================================

    Hmm… vc está usando o query_posts…
    Então, tente:
    <?php query_posts( $query_string . ‘&order=name’); ?>

    Veja se funciona…

    Criador do tópico Philipemarostica

    (@philipemarostica)

    Ainda nada… Coloquei assim mas não funcionou:

    <?php query_posts( $query_string . '&order=name'); ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    Vc está usando o $query_string por algum motivo especial?

    Teria problema vc alterar um pouco seu código?
    O começo ficaria assim:
    <?php
    $args = array(
    ‘post_type’ => ‘post’,
    ‘post_status’ => ‘publish’,
    ‘posts_per_page’ => 10,
    ‘orderby’ => ‘name’
    );
    query_posts($args);
    ?>

    Daí vc alteraria o que achar necessário aí…

    Criador do tópico Philipemarostica

    (@philipemarostica)

    Sem problema, pode mudar o código sim.
    Eu coloquei assim agora:

    <?php $args = array('orderby' => 'name');query_posts($args);?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    Porém agora ao invés de aparecer os posts da categoria “Equipe”, apareceram posts de outra categoria… O que fiz de errado?

    Criador do tópico Philipemarostica

    (@philipemarostica)

    Ah… disfarça… eu tinha esquecido de colocar a categoria no query_posts.
    Agora eu coloquei, listou os posts da categoria de equipe, porém ele não está utilizando os slugs (order by name) para a ordem alfabética.

    <?php $args = array('orderby' => 'name');query_posts('cat=4&showposts=10');?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    Filipão, você tem mais alguma ideia pra me ajudar?

    Opa!
    Vc precisa usar o $args como parâmetro da função query_posts.

    <?php
    $args = array(
    ‘posts_per_page’ => 10,
    ‘category_name’ => ‘equipe’,
    ‘orderby’ => ‘name’
    )
    query_posts($args);
    ?>

    Eu levei em consideração q o slug da sua categoria Equipe é equipe.

    Criador do tópico Philipemarostica

    (@philipemarostica)

    Eu fiz isso, mas aí a página ficou em branco.

    <?php
    $args = array(
    'posts_per_page' => 10,
    'category_name' => 'equipe',
    'orderby' => 'name'
    )
    query_posts($args);
    ?>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

    faltou o post_type…

    <?php

    $args = array(
    ‘post_type’ => ‘post’,
    ‘category_name’ => ‘equipe’,
    ‘posts_per_page’ => 10,
    ‘orderby’ => ‘name’
    )
    query_posts($args);

    while(have_posts()):
    the_post();
    endwhile;

    ?>

    E vc nem precisa do if aí.

Visualizando 10 respostas - 1 até 10 (de um total de 10)
  • O tópico ‘Lista de posts em ordem alfabética ignorando a primeira palavra’ está fechado para novas respostas.