Es de común pedido por parte de los clientes el agregar varias clases de posts en una misma página. Para ello se utiliza la sentencia «query_posts($args)» o sino «$query = new WP_Query($args)» donde «$args» son los argumentos pasados a las funciones wordpress para estas queries o consultas. Pero esto suele tener algunos inconvenientes y a veces necesitamos agregar posts manualmente en wordpress.

También se suele utilizar algún orden específico, fecha, id, custom field, etc; pero desde hace un tiempo se utilizan algunos plugins para ordenarlos en forma manual, el cual utilizan «drag & drop» y así le dá al usuario un nivel mas de customización.
Pero estos plugins por lo general agregan funciones y filtros que pueden bloquear algunos ordenes utilizados en otros lugares.

Es por eso que es siempre útil conocer la sintáxis de wordpress a la hora de realizar queries manualmente. Es algo tedioso tener que usar queries manuales ya que si en alguna actualización de wordpress cambia la base de datos esto dejará de funcionar. Pero esto nos puede sacar de un apuro en caso de que un cliente asi lo requiera.


global $wpdb;
global $post;
 $querystr = "
    SELECT * 
    FROM $wpdb->posts
    WHERE $wpdb->posts.post_status = 'publish' 
    AND $wpdb->posts.post_type = 'sponsor'
    ORDER BY RAND()
	LIMIT 4
 ";
$pageposts = $wpdb->get_results($querystr, OBJECT);


  if ($pageposts):
   global $post; 
 foreach ($pageposts as $post): 
     setup_postdata($post); 
 the_title(); 	

endforeach;
endif;

>

Como vemos en el ejemplo lo que estamos solicitando es obtener 4 posts random que sean del custom post type «sponsor». Despues mostramos solo el título como ejemplo pero podemos mostrar lo que quisieramos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *