Diferencias entre servidor local y web en Wordpress
2 seguidores
Hola a todos:
Estoy casi terminando mi periódico onlien sobre Wordpress pero tengo un problemilla.
Las ultimas noticias se muestran en un slider al cual le aplico un "filtro" para que cierta categoría no se vea en el slider.
Cuando pruebo esto en forma local todo funciona Ok, peor al implementarlo en la web el orden de las noticias se invierte, es decir, muestra lo mas antiguo en lugar de los mas nuevo.
Este es el código que estoy usando para filtrar la categoría 22:
$tz_latest_post = new WP_Query(); $tz_latest_post->query(‘cat=-22&caller_get_posts=1&posts_per_page=’ . $tz_latest_number . ’’); ?>
Alguna idea de porque pasa esto?
Gracias a todos por anticipado.
andrewman
Puede que al pasar la base de datos local a tu sitio se hayan producido modificaciones? (No sé qué método utilizaste) pero puedes pasarle argumentos al contructor de la búsqueda (WP_Query) para que te funcione como deseas:
$tz_latest_post = new WP_Query( array ( 'orderby' => 'date', 'order' => 'DESC' ) );
Página de referencia de WP_Query.
Vitrubio
Gracias Andrewman, lo intenté con lo que me dices pero nada, sigue igual.
Lo que yo necesito (como se ve el el codigo) es filtrar la categoria 22) y de hecho eso se cumple, pero por alguna razón al agregar este filtro las entradas se ordenan a la inversa, es decir, primero las mas antiguas.
Esto no me pasa en forma local usando MAMP.
Akguna idea de que puede estar pasando?
Ah.. por ciero, la web es esta: http://www.infochivilcoy.com/
Gracias por anticipado
andrewman
Si ponemos los argumentos para la búsqueda en el constructor y luego usamos el método query, los primeros se omiten y se usarán sólo los incluidos en query.
Entonces, como tú prefieras, puedes utilizar:
<?php
// No usamos el método query
// $tz_latest_post->query('cat=-22&ignore_sticky_posts=1&posts_per_page=' . $tz_latest_number);
// Pasamos los argumentos directamente en el constructor
$tz_latest_post = new WP_Query(
array(
'orderby' => 'date',
'order' => 'DESC',
'cat' => -22,
'posts_per_page' => $tz_latest_number,
'ignore_sticky_posts' => 1
)
); ?>
<?php while ($tz_latest_post->have_posts()) : $tz_latest_post->the_post(); ?>
...
Borrando o comentando la línea (que te la dejé comentada en el bloque de arriba):
$tz_latest_post->query('cat=-22&ignore_sticky_posts=1&posts_per_page= . $tz_latest_number );
o usas el contructor sin argumentos y después los pones en el método query.
<?php
// constructor sin argumentos
$tz_latest_post = new WP_Query();
// pones los argumentos el método query
$tz_latest_post->query( 'cat=-22&orderby=date&order=DESC&ignore_sticky_posts=1&posts_per_page=' . $tz_latest_number ); ?>
<?php while ($tz_latest_post->have_posts()) : $tz_latest_post->the_post(); ?>
...
En cualquiera de las dos formas, vete jugando con los parámetros. Deberías usar 'ignore_sticky_posts', en vez de 'caller_get_posts' (deprecated), por eso está cambiado.
De paso, la línea que pusiste al principio:
$tz_latest_post = new WP_Query(); $tz_latest_post->query(‘cat=-22&caller_get_posts=1&posts_per_page=’ . $tz_latest_number . ’’); ?>
no sé si la tenías así o se cambiaron las comillas al copiar&pegar, pero debería ser:
$tz_latest_post = new WP_Query(); $tz_latest_post->query( 'cat=-22&ignore_sticky_posts=1&posts_per_page=' . $tz_latest_number ); ?>
con comillas simples.
Vitrubio
Perdón que retome este tema tan tarde, pero nada ha dado resultado. Incluso lo han chequeado los desarrolladores del tema que uso (Deadline) y no funciona correctamente. En forma local toda va de maravillas, pero al aplicar el filtro de categorías en la versión web, se invierte el orden de las entradas. Todo un misterio.