Mostrar todas las entradas de categorías específicas en una página

2 ene 2013, 13:43:28
Vistas: 28K
Votos: 5

Quiero mostrar todas las entradas de categorías específicas en una sola página. Por lo tanto, edité el archivo page.php en la carpeta de mi tema. Agregué una 'cláusula if' para verificar qué página se está mostrando actualmente y cargar todas las entradas de las siguientes categorías.

<?php get_header(); ?>

<div id="primary">
    <div id="content" role="main">

<?php
    if (is_page(26)) {
        query_posts('cat=2,6,9,13&showposts=-1&orderby=date');    
        if (have_posts()) : 
            while (have_posts()) : 
                the_post(); 
                get_template_part( 'content', 'page' );
            endwhile; 
        endif;  
    } else {
        while ( have_posts() ) : 
            the_post(); 
            get_template_part( 'content', 'page' ); 
        endwhile; // fin del bucle. 
    }
?>

    </div><!-- #content -->
</div><!-- #primary -->

<?php get_footer(); ?>

Pero cuando cargo mi página 26 no se muestra nada.

1
Comentarios

No uses query_posts http://wordpress.stackexchange.com/a/50762/10911. Utiliza WP_Query para esto http://codex.wordpress.org/Class_Reference/WP_Query

janw janw
2 ene 2013 13:47:58
Todas las respuestas a la pregunta 2
0

Recomendaría agregar el argumento de la categoría en un array. Y no usar query_posts. Además, showposts está obsoleto, usa posts_per_page en su lugar.

$args = array (
    'cat' => array(2,6,9,13),
    'posts_per_page' => -1, //showposts está obsoleto
    'orderby' => 'date' //Puedes especificar más filtros para obtener los datos
);

$cat_posts = new WP_query($args);

if ($cat_posts->have_posts()) : while ($cat_posts->have_posts()) : $cat_posts->the_post();
        get_template_part( 'content', 'page' );
endwhile; endif;
2 ene 2013 13:52:16
0

Esto sucede porque todavía estás usando query_posts(). Deja de hacer eso. Usa WP_Query en su lugar:

$extra_posts = new WP_Query( 'cat=2,6,9,13&showposts=-1&orderby=date' );
if ( $extra_posts->have_posts() )
{
    while( $extra_posts->have_posts() )
    {
        $extra_posts->the_post();
        get_template_part( 'content', 'page' );
    }
    wp_reset_postdata();
}
2 ene 2013 13:49:26