据我所知,get_posts()
函数不能用于分页结果。它旨在获取一系列帖子和it sets no_found_rows
to true
by default from WP 3.1. 除非将分页设置为false,或者更好地使用WP\\u Query,否则分页将无法工作。
numberposts
也是无效参数。
$paged = ( get_query_var( \'page\' ) ) ? get_query_var( \'page\' ) : 1;
$args = array(
\'posts_per_page\' => 4,
\'post_type\' => array(\'temas\', \'perfiles\', \'udem-mundo\', \'deportes\', \'cultura\'),
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'contenido_relacionado_impreso\',
\'value\' => \'si\',
\'compare\' => \'=\',
),
array(
\'key\' => \'contenido_relacionado_edicion\',
\'value\' => $edicion_ID,
\'compare\' => \'=\',
),
),
\'paged\' => $paged,
);
$posts_relacionados_edicion = new WP_Query( $args );
if ( $posts_relacionados_edicion->have_posts() ) :
while( $posts_relacionados_edicion->have_posts() ) :
$posts_relacionados_edicion->the_post(); ?>
<div class="col-md-6 col-sm-6">
<a href="<?php the_permalink(); ?>" class="blog-titulo-chico"><h3><?php the_title(); ?></h3></a>
</div>
<?php endwhile;
echo paginate_links( array(
\'current\' => $paged,
\'total\' => $posts_relacionados_edicion->max_num_pages,
\'format\' => \'?page=%#%\'
) );
wp_reset_postdata();
else : ?>
<?php _e( \'No found posts.\', \'textdomain\' ); ?>
<?php endif; ?>
上面的代码以以下格式生成分页链接
example.com/{post-name}/{page-number}
它似乎正在发挥作用。
下一段代码以以下格式生成分页链接example.com/{post-name}/page/{page-number}
, 但它们被重定向到example.com/{post-name}/
并使分页不起作用。如果您想使用URL,如example.com/{post-name}/page/{page-number}
:
$paged = ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1;
$args = array(
\'posts_per_page\' => 4,
\'post_type\' => array(\'temas\', \'perfiles\', \'udem-mundo\', \'deportes\', \'cultura\'),
\'meta_query\' => array(
\'relation\' => \'AND\',
array(
\'key\' => \'contenido_relacionado_impreso\',
\'value\' => \'si\',
\'compare\' => \'=\',
),
array(
\'key\' => \'contenido_relacionado_edicion\',
\'value\' => $edicion_ID,
\'compare\' => \'=\',
),
),
\'paged\' => $paged,
);
$posts_relacionados_edicion = new WP_Query( $args );
if ( $posts_relacionados_edicion->have_posts() ) :
while( $posts_relacionados_edicion->have_posts() ) :
$posts_relacionados_edicion->the_post(); ?>
<div class="col-md-6 col-sm-6">
<a href="<?php the_permalink(); ?>" class="blog-titulo-chico"><h3><?php the_title(); ?></h3></a>
</div>
<?php endwhile;
echo paginate_links( array(
\'current\' => $paged,
\'total\' => $posts_relacionados_edicion->max_num_pages
) );
wp_reset_postdata();
else : ?>
<?php _e( \'No found posts.\', \'textdomain\' ); ?>
<?php endif; ?>
也可以构建自己的分页端点:
$paged = ( get_query_var( \'my_page\' ) ) ? get_query_var( \'my_page\' ) : 1;
$args = array(
\'posts_per_page\' => 4,
\'post_type\' => array(\'post\'),
\'paged\' => $paged,
);
$posts_relacionados_edicion = new WP_Query( $args );
if ( $posts_relacionados_edicion->have_posts() ) :
while( $posts_relacionados_edicion->have_posts() ) :
$posts_relacionados_edicion->the_post(); ?>
<div class="col-md-6 col-sm-6">
<a href="<?php the_permalink(); ?>" class="blog-titulo-chico"><h3><?php the_title(); ?></h3></a>
</div>
<?php endwhile;
echo paginate_links( array(
\'current\' => $paged,
\'total\' => $posts_relacionados_edicion->max_num_pages,
\'format\' => \'?my_page=%#%\'
) );
wp_reset_postdata();
else : ?>
<?php _e( \'No found posts.\', \'textdomain\' ); ?>
<?php endif; ?>
与重写标记结合使用:
add_action(\'init\', function() {
add_rewrite_tag( \'my_page\', \'([0-9]+)\' );
} );