¿Cómo consigo wordpress para anular una consulta de publicaciones anteriores?

StackOverflow https://stackoverflow.com/questions/608025

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo una página que tiene una lista de categorías en la parte superior, y normalmente debería incluir las publicaciones debajo de ella. La lista de categorías se crea utilizando:

    <?php $display_categories = array(4,7,8,9,21,1); $i = 1;
foreach ($display_categories as $category) { ?>
<?php single_cat_title(); ?> //etc
</div>
    <?php } ?>

Sin embargo, esto parece hacer que las publicaciones de orden de bucle por categoría. Quiero que ignore el orden de las categorías y el orden por fecha en orden descendente. He creado una nueva WP_Query ya que, de acuerdo con los documentos, no puedes usar query_posts () dos veces, por lo que en este caso.

    <?php $q = new WP_Query("cat=-1&showposts=15&orderby=date&order=DESC");
    if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post(); ?>
    the_title(); // etc
    endwhile; endif; ?>

Sin embargo, este aún parece ordenarse por categoría (el mismo orden que en la lista anterior) y luego por fecha, en lugar de solo por fecha.

¿Fue útil?

Solución

También he tenido problemas con esto antes.

Prueba esto:

      <?php
     global $post;
     $myposts = get_posts('numberposts=5');

     foreach($myposts as $post) : 
     setup_postdata($post);
     ?>
       <div <?php post_class(); ?>>
         <div class="title">
           <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
           <p class="small"><?php the_time('F j, Y'); ?> by <?php the_author(); ?></p>
         </div>
         <?php the_excerpt(); ?>
       </div>
 <?php 
     endforeach; 
 ?> 

La línea importante es 'global $ post;'.

Eso debería restablecer su consulta global. El método 'setup_postdata ($ post) es necesario para darle acceso a funciones como' the_author () 'o' the_content () '.

-Chris

Otros consejos

No tengo ninguna experiencia con wordpress, pero hay un par de posibilidades:

  1. Usted define el " orden " parámetro dos veces en la cadena con la que está llamando query_posts () , no sé si eso causa un problema o no.
  2. También, " mostrar " no es un parámetro válido, es posible que haya estado buscando " showposts " ;.

Los parámetros y sus efectos se describen aquí: http://codex.wordpress.org/Template_Tags/query_posts#Parameters

query_posts es complicado a veces. Intente algo como esto y vea si funciona:

query_posts(array('category__not_in'=>array(1),
                  'showposts'=>15,
                  'orderby'=>date,
                  'order'=>DESC));

Ya que ese no es el problema, intente agregar update_post_caches ($ posts) al segundo ciclo, de esta manera:

<?php $q = new WP_Query("cat=-1&showposts=15&orderby=date&order=DESC");
if ( $q->have_posts() ) : while ( $q->have_posts() ) : $q->the_post(); update_post_caches($posts); ?>
the_title(); // etc
endwhile; endif; ?>

Supuestamente este resuelve algunos problemas de complementos .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top