Autor

Alejandro Alcalde

Graduado en Ingeniería Informática en la ETSIIT, Granada.

Más artículos de Alejandro Alcalde

En otros artículos mostré cómo crear shortcodes en WordPress, hoy veremos cómo mostrar todos los post de una categoría wordpress dada como parámetro al shortcode.



Crear el shortcode

Editamos el archivo functions.php de nuestro tema y añadimos el siguiente código:

function show_category_posts( $atts ){
    extract(shortcode_atts(array('cat'=> ''), $atts));
    query_posts('cat='.$cat.'&orderby;=dateℴ=ASC&posts;_per_page=-1');
    if ( have_posts() ){
        $content = '<ul>';
        while ( have_posts() ){
            the_post();
            $content .= the_title('<li><a href="'.get_permalink().'">', '</a></li>', true);
        }
        $content .= '</ul>';
    }
    //Reset query
    wp_reset_query();
    return $content;
}
add_shortcode('mostrar_cat', 'show_category_posts');

Entendiendo el código

La encargada de realizar todo el trabajo es la función query_posts(), es posible pasarle varios parámetros, como orderby=date para ordernar por fecha en orden ascendente (order=ASC). Para mostrar todos los artículos de la categoría es necesario el parámetro posts_per_page=-1. La lista de parámetros completa la podemos encontrar en la documentación de la clase WP_Query.

Lo siguiente que hace este trozo de código es iterar sobre todos los artículos y crear una lista.

Por último añadimos la función como un shortcode y ya está lista para usar.

Para usar el shortcode debemos conocer el id de la categoría a mostrar, o reemplazar el parámetro cat= por cualquiera de los siguientes:

Ejemplo de uso

[mostrar_cat cat="1"]

Referencias

Quizá también te interese leer...