domingo, 17 de febrero de 2013

Manual ShortCodes en WordPress (completísimo) II

En esta entrada vamos a ver el potencial de los shortcodes (atajos) mediante su flexibilidad para poder ser parametrizados, siguiendo con el ejemplo sencillo, ahora vamos a ver como sería para poder elegir cuantos post mostrar de lo últimos publicados.
Obtenemos los parámetros ('1' por defecto), hacemos la consulta y mostramos la lista, es lo que hace el siguiente código:
function recent_posts_function($atts){
   extract(shortcode_atts(array(
      'posts' => 1,
   ), $atts));
   $return_string = '<ul>';
   query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
   if (have_posts()) :
      while (have_posts()) : the_post();
         $return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
      endwhile;
   endif;
   $return_string .= '</ul>';
   wp_reset_query();
   return $return_string;
}

Podemos meter tantos parámetros como querámos, pero bueno, ahora vemos el ejemplo funcionar, en nuestra entrada de prueba podemos llamar a nuestro atajo así desde el contenido directamente:
[recent-posts posts="5"]
Actualizamos la página, y veremos lo que nos muestra :D

Ahora vamos a ir un paso más allá, y es pasarle también el contenido entre etiquetas como parámetro y mostrarlo como título de nuestro 'atajo'.
Esto en nuestro archivo shortcodes.php:
function recent_posts_function($atts, $content = null) {
   extract(shortcode_atts(array(
      'posts' => 1,
   ), $atts));

   $return_string = '<h3>'.$content.'</h3>';
   $return_string .= '<ul>';
   query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
   if (have_posts()) :
      while (have_posts()) : the_post();
         $return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
      endwhile;
   endif;
   $return_string .= '</ul>';

   wp_reset_query();
   return $return_string;
}

Y esto en nuestra entrada/página:
[recent-posts posts="5"]Cabecera atajo[/recent-posts]

Y ya por útlimo en esta entrada, ver cómo usar los atajos también en los widgets, ya que de forma predeterminada son ignorados en el sidebar, pero se pueden habilitar añadiendo una solo línea de código: 
add_filter('widget_text', 'do_shortcode');

Para la 3ª y última parte del manual de los shortcodes en wordpress vamos a dejar cómo añadirlos en el editor de entradas y páginas, para un uso más sencillo y amigable por parte del usuario final.

No hay comentarios:

Publicar un comentario