Suporte » Plugins » Campos Personalizados: Listar posts com 1 field_name e 2 meta_value

  • Resolvido Philipe Ribeiro

    (@philiperibeiro)


    Estou usando os CAMPOS PERSONALIZADOS em um catálogo de filmes e para listar todos os filmes de 2014 uso o seguinte código:

    <ul>
     <?php
     global $post;
     $myposts = get_posts('numberposts=500&orderby=title&order=ASC&field_name=Ano&meta_value=2014');
     foreach($myposts as $post) :
     ?>
        <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
     <?php endforeach; ?>
     </ul>

    Como faço para listar os posts de, por exemplo, 2014, 2013 e 2012 na mesma lista?

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Eu recomendo você criar um novo objeto WP_Query, passando os parâmetros de custom fields.

    Exemplo:

    <?php
    $args = array(
         'posts_per_page' => 500,
         'orderby' => 'title',
         'order' => 'ASC',
         'meta_query' => array(
              array(
                'key' => 'Ano'
                'value' => array('2014', '2013', '2012')
                'compare' => 'IN'
              )
      ));
    
      $my_query = new WP_Query($args); ?>
    
      <ul>
      <?php while ($my_query->have_posts) : $my_query->the_post(); ?>
          <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php  endwhile; ?>
      </ul>

    Qualquer dúvida veja em: http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

    Criador do tópico Philipe Ribeiro

    (@philiperibeiro)

    Não funcionou =(

    Desculpe! Mas no código anterior esqueci as vírgulas que separam os elementos do array de meta_query e have_post() é uma função. Você não notou isso?! Agora está correto.

    <?php
    $args = array(
    	'posts_per_page' => 500,
    	'orderby' => 'title',
    	'order' => 'ASC',
    	'meta_query' => array(
    		array(
                	   'key' => 'Ano',
    		   'value' => array('2014', '2013', '2012'),
    		   'compare' => 'IN'
              	)
      	)
    );
    
    $my_query = new WP_Query($args);?>
    
    <ul>
      <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?> </a></li>
      <?php  endwhile; ?>
    </ul>
    Criador do tópico Philipe Ribeiro

    (@philiperibeiro)

    Obrigado, Siderlan, funcionou mesmo1 =)

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Campos Personalizados: Listar posts com 1 field_name e 2 meta_value’ está fechado para novas respostas.