La paginación con custom post type no funciona

3 jul 2011, 05:40:16
Vistas: 24K
Votos: 7

Por alguna razón no puedo hacer funcionar la paginación usando previous_posts_link y next_posts_link.

Aquí está el código que tengo...

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>

<?php // La Consulta
$the_query = new WP_Query(
array(
    'post_type'=>'article',
    'posts_per_page'=>2,
    'orderby'=>'date',
    'paged'=>$paged
)
);

// El Loop
while ( $the_query->have_posts() ) : $the_query->the_post();

if($the_query->current_post == 0 && $paged == 1) :
?>
<article class="latest">
    <div class="summary">
        <h4>ÚLTIMO ARTÍCULO:</h4>

        <h2><?=the_title(); ?></h2>
        <div class="entry-meta">
            <?php proagent_posted_on(); ?>
        </div><!-- .entry-meta -->
        <div class="entry-content">
            <?=get_the_content_limit(300, 'Más'); ?>

        </div><!-- .entry-content -->

        <div class="entry-topics"><?=get_the_term_list($post->ID , 'topics', 'Temas: ',', '); ?></div>
    </div>
    <?=the_post_thumbnail('feature-post-thumbnail'); ?>
</article>

<?php else: ?>
<article class="previous">
    <?=the_post_thumbnail(); ?>
    <div class="summary">
        <h2><?=the_title(); ?></h2>
        <div class="entry-meta">
            <?php proagent_posted_on(); ?>
        </div><!-- .entry-meta -->
        <div class="entry-content">
            <?=get_the_content_limit(300, 'Más'); ?>

        </div><!-- .entry-content -->

        <div class="entry-topics"><?=get_the_term_list($post->ID , 'topics', 'Temas: ',', '); ?></div>
    </div>
</article>
<?php endif; ?>

<?php endwhile; ?>
<nav id="nav-below" class="navigation">
    <div class="alignleft"><?php previous_posts_link('« Artículos más nuevos') ?></div>
    <div class="alignright"><?php next_posts_link('Artículos más antiguos »') ?></div>
</nav><!-- #nav-below -->

Además... acabo de notar que funciona cuando voy a /articles/page/2 hay un enlace a /articles/ como debería ser, pero desde la página /articles/ no hay enlace a la página 2... ¿POR QUÉ?

POR FAVOR ayuda si puedes... esto me está volviendo loco.

¡Gracias! mark.

2
Comentarios

¿En qué contexto estás intentando que esto funcione? ¿Plantilla de página? ¿Plantilla de categoría? ¿index.php? Eso puede tener implicaciones importantes para el código.

tollmanz tollmanz
3 jul 2011 07:35:16

Es una plantilla de categoría personalizada para posts. Estoy intentando mostrar elementos en mi tipo de post personalizado llamado "articles" y esta es la página principal de artículos. He definido una página, también llamada articles.php, en la que estoy codificando. Cualquier ayuda sería muy, muy, muy apreciada.

markstewie markstewie
3 jul 2011 12:14:19
Todas las respuestas a la pregunta 2
3
13

el slug de tu página debe ser diferente al nombre del tipo de contenido personalizado

9 jun 2016 15:38:08
Comentarios

Por favor publícalo como un comentario o explica un poco cómo funciona.

bravokeyl bravokeyl
9 jun 2016 15:39:06

¡Funciona perfectamente, gracias!

Rangel R. Morais Rangel R. Morais
2 mar 2020 21:15:34

page-slug puede ser igual que el nombre del tipo de entrada personalizado: https://wordpress.stackexchange.com/questions/135146/resolve-a-custom-post-type-name-vs-page-permalink-conflict-same-slug

Robin Huy Robin Huy
26 oct 2022 07:18:05
1

La paginación solo funciona si el atributo paged en la variable global $wp_query está configurado. Podrías almacenar tu consulta manualmente en esta global o simplemente usar query_posts() en lugar de new WP_Query().

<?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $the_query = query_posts(
        array(
            'post_type'=>'article',
            'posts_per_page'=>2,
            'orderby'=>'date',
            'paged'=>$paged
        )
    );
    // ...
?>

La función query_posts() anulará cualquier $wp_query global existente, ejecutará un nuevo WP_Query() y almacenará el resultado nuevamente en la variable global $wp_query.

3 jul 2011 17:35:14
Comentarios

Esta es una publicación antigua. Para aquellos que leen esta respuesta, tengan en cuenta que hay información nueva en WordPress.org. https://developer.wordpress.org/reference/functions/query_posts/

Nora McDougall-Collins Nora McDougall-Collins
5 may 2022 18:58:07