¿Cómo consigo wordpress para anular una consulta de publicaciones anteriores?
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.
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:
- 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. - 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 .