WordPress拥有the_posts_navigation
自4.1.0起运行。但我不知道如何使用wp_query
或get_posts
. 以下代码位于页面的模板文件中
wp_query method:
<?php
if ( get_query_var(\'paged\') ) {
$paged = get_query_var(\'paged\');
} else if ( get_query_var(\'page\') ) {
$paged = get_query_var(\'page\');
} else {
$paged = 1;
}
$get_posts=new wp_query(\'post_type=case&posts_per_page=2&paged=\'.$paged);
while($get_posts->have_posts()):$get_posts->the_post();
the_title();
endwhile;
the_posts_pagination( array(
\'prev_text\' => __( \'Previous page\', \'cm\' ),
\'next_text\' => __( \'Next page\', \'cm\' ),
\'before_page_number\' => \'<span class="meta-nav screen-reader-text">\' . __( \'Page\', \'cm\' ) . \' </span>\',
) );
?>
get_posts method:
<?
while(have_posts()):the_post();
if ( get_query_var(\'paged\') ) {
$paged = get_query_var(\'paged\');
} else if ( get_query_var(\'page\') ) {
$paged = get_query_var(\'page\');
} else {
$paged = 1;
}
$case_posts=get_posts(\'post_type=case&posts_per_page=2&paged=\'.$paged);
echo \'<pre>\';
print_r($case_posts);
echo \'</pre>\';
foreach($case_posts as $case_post){
echo $case_post->post_title;
}
endwhile;
// Previous/next page navigation.
the_posts_pagination( array(
\'prev_text\' => __( \'Previous page\', \'cm\' ),
\'next_text\' => __( \'Next page\', \'cm\' ),
\'before_page_number\' => \'<span class="meta-nav screen-reader-text">\' . __( \'Page\', \'cm\' ) . \' </span>\',
) );
?>
它们不工作并显示分页,但输入
http://127.0.0.1/gdboer/?page_id=74&page=2 在地址栏中手动操作,即可工作。谁能帮我,非常感谢!
最合适的回答,由SO网友:Pieter Goosen 整理而成
the_posts_navigation()
只是一个包装函数get_the_posts_navigation()
这是一个简单的包装函数paginate_links
. 前两个函数使用的参数与paginate_links
并实际将其传递给后一个函数
get_the_posts_navigation()
和the_posts_navigation()
这是一个很好的新功能,因为它消除了许多自定义编码,而且对于希望使用编号分页链接的新的无经验用户来说,它更加友好
唯一的缺陷get_the_posts_navigation()
就是开发人员去包装paginate_links
条件语句中的函数,该语句声明如果主查询($wp_query
) 少于1页,(请记住,第一页是0
第二页是2
), 不显示链接。这对于页面模板上的自定义查询是有问题的。页面始终只有一个页面,因此这些函数不能用于自定义查询
如果必须使用the_posts_navigation()
, 是利用@ChipBennet answer inthis post. 我真的不喜欢取消主查询(相当粗糙,在我看来这就像使用query_posts
) 但我看不到其他解决方案get_the_posts_navigation()
使用自定义查询的步骤
SO网友:Eran Or
我有一个自定义模板,我花了几个小时才显示分页组件。这是对我有用的东西。
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array(
\'posts_per_page\' => 3,
\'orderby\' => \'menu_order\',
\'order\'=> \'ASC\',
\'paged\'=>$paged,
\'post_type\' => \'projects\'
);
$projects = new WP_Query($args);
<!-- working example of pagination with numbers -->
...<?php endwhile;?>
<?php
$GLOBALS[\'wp_query\']->max_num_pages = $projects->max_num_pages;
the_posts_pagination( array(
\'mid_size\' => 1,
\'prev_text\' => __( \'Back\', \'green\' ),
\'next_text\' => __( \'Onward\', \'green\' ),
\'screen_reader_text\' => __( \'Posts navigation\' )
) ); ?>
OR
<!-- working example of pagination without numbers -->
...<?php endwhile;?>
<?php next_posts_link( \'next\', $projects->max_num_pages ); ?>
<?php previous_posts_link(\'prev\') ?>