Suporte » Desenvolvendo com WordPress » Dúvidas Oordenar posts através de campos personalizados – Data

  • Resolvido hafauel1

    (@hafauel1)


    Alguém poderia me dar uma força como faço para ordenar post com CUSTOM FIELDS, ou seja a data seria inserida neste campo e a ordenação seria pela data inserida.

    eu tentei isso e não funcionou

    <div id="ordenar_event">
    	<?php
    $temp = $wp_query;
    $wp_query= null;
    $wp_query = new WP_Query();
    $wp_query->query('cat=4'.'&paged='.$paged. 'meta_key=data&orderby=meta_value&order=DESC'."");
    ?>
    
    <?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    
    <ul>
        <li>
         <div class="ord_cont_event"><div class="txt_even">
    <? $valor = get_post_custom_values('data'); echo $valor[0];?>
          <span class="event_txt"><?php the_title();?></a></div></span>
           <div class="event_art"><? $valor = get_post_custom_values('artista'); echo $valor[0];?>  </div>
    	   <div class="local_art"><? $valor = get_post_custom_values('rua'); echo $valor[0];?>  </div>
    	    <div class="cidade_art"><? $valor = get_post_custom_values('cidade'); echo $valor[0];?>  </div>
            <div class="event_ord2">
    		  <?php the_excerpt_rereloaded('0','Leia Mais','<em>','div','yes'); ?> 
    
         </li> 
    
         </li> 
    
    </ul>
    <?php endwhile; ?>
    	<?php $wp_query = null; $wp_query = $temp;?>
    </div>

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • É meio chato usar os metadados mas é como está no Codex mesmo, o que não diz é que é preciso mesmo criar um array somente para as opções de metadados

    Você precisa inserir os dados dentro da instancia do WP_Query.
    Eu prefiro utilizar Arrays. Strings, só utilizo quando são poucos parâmetros.

    veja:

    <div id="ordenar_event">
    	<?php
    $temp = $wp_query;
    $wp_query= null;
    
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $params = array(
    	'cat' => 4,
    	'paged' => $paged,
    	'meta_key' => 'data',
    	'orderby' => 'meta_value',
    	'order' => 'DESC'
    );
    $wp_query = new WP_Query($params);
    ?>
    
    <?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    
    <ul>
        <li>
         <div class="ord_cont_event"><div class="txt_even">
    <? $valor = get_post_custom_values('data'); echo $valor[0];?>
          <span class="event_txt"><?php the_title();?></a></div></span>
           <div class="event_art"><? $valor = get_post_custom_values('artista'); echo $valor[0];?>  </div>
    	   <div class="local_art"><? $valor = get_post_custom_values('rua'); echo $valor[0];?>  </div>
    	    <div class="cidade_art"><? $valor = get_post_custom_values('cidade'); echo $valor[0];?>  </div>
            <div class="event_ord2">
    		  <?php the_excerpt_rereloaded('0','Leia Mais','<em>','div','yes'); ?> 
    
         </li> 
    
         </li> 
    
    </ul>
    <?php endwhile; ?>
    	<?php $wp_query = null; $wp_query = $temp;?>
    </div>
    Criador do tópico hafauel1

    (@hafauel1)

    Olá Leo tentei utilizar o seu código porém está dando este erroFatal error: Call to a member function get() on a non-object in /home/limongistu/public_html/portal/wp-includes/query.php on line 27

    Eu coloquei assim

    <?php get_header(); ?>
    <div id="filho2internacat">
      <div id="filho2_conteudo">
        <div id="filhointerna">
    
    	<div class="breadcrumbs"><span class="bretxt"><?php include(TEMPLATEPATH . '/includes/breadcrumbs.php'); ?></span></div>
    	<div id="txt_evento">
    	<div class="data_event"> Data:</div>
    	<div class="titu_evento">Evento:</div>
    	<div class="local_evento">Localização:</div>
    	<div class="info_event">Informações: </div>
    
    	</div>
    <div id="ordenar_event">
    	<?php
    $temp = $wp_query;
    $wp_query= null;
    
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $params = array(
    	'cat' => 4,
    	'paged' => $paged,
    	'meta_key' => 'data',
    	'orderby' => 'meta_value',
    	'order' => 'DESC'
    );
    $wp_query = new WP_Query($params);?>
    
    <?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
    
    <ul>
        <li>
         <div class="ord_cont_event"><div class="txt_even">
    <? $valor = get_post_custom_values('data'); echo $valor[0];?>
          <span class="event_txt"><?php the_title();?></a></div></span>
           <div class="event_art"><? $valor = get_post_custom_values('artista'); echo $valor[0];?>  </div>
    	   <div class="local_art"><? $valor = get_post_custom_values('rua'); echo $valor[0];?>  </div>
    	    <div class="cidade_art"><? $valor = get_post_custom_values('cidade'); echo $valor[0];?>  </div>
            <div class="event_ord2">
    		  <?php the_excerpt_rereloaded('0','Leia Mais','<em>','div','yes'); ?> 
    
         </li> 
    
         </li> 
    
    </ul>
    <?php endwhile; ?>
    	<?php $wp_query = null; $wp_query = $temp;?>
    </div>
    	</div>
        <div id="filho2b_interna">
          <div id="filho2c">
         <?php get_sidebar('terceiro'); ?>
        </div>
       </div>
      </div>
    
    </div>
    </div>
    </div>
      <div id="rodape">
      <?php get_footer(); ?>

    Desde já te agradeço pela paciencia.
    Abç

    Fiz isso com query um pouco mais simples e funcionou tbm!

    <?php query_posts( array(
          'posts_per_page' => 8,
          'post_type' => 'cadastro',
    	  'meta_key' => 'valores_0_valor_do_imovel',
          'orderby' => 'valores_0_valor_do_imovel',
          'order' => 'DESC',
          'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1 ),
     )); ?>
Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Dúvidas Oordenar posts através de campos personalizados – Data’ está fechado para novas respostas.