如何确定我是否在分页的第一页上?我正在使用WP_Pagenavi。我只想在分页的第一页上运行一个函数。我检查了query_var'paged',在此页面上将其设置为0,然后在随后的页面中将其设置为2,3,以此类推(缺少1!)...有人知道一个干净的解决方案吗?
谢谢。
如何确定我是否在分页的第一页上?我正在使用WP_Pagenavi。我只想在分页的第一页上运行一个函数。我检查了query_var'paged',在此页面上将其设置为0,然后在随后的页面中将其设置为2,3,以此类推(缺少1!)...有人知道一个干净的解决方案吗?
谢谢。
Answers:
// get current page we are on. If not set we can assume we are on page 1.
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// are we on page one?
if(1 == $paged) {
//true
}
如果您只想知道自己位于分页页面的第一页,请尝试is_paged()
:
if ( !is_paged() ) {
// first page of pagination
}
我一直在寻找一种简单的方法来确定是否使用该posts_nav_link()
功能,而我在网上发现的所有解决方案都过于复杂或不可靠。例如,许多人建议使用$paged
全局变量,但是我发现即使第一页是唯一的页面,该变量也为第一页返回相同的值!
因此,我进入wp-includes/link-template.php
文件,发现该posts_nav_link()
函数只是输出另一个函数的返回值:
/**
* Display post pages link navigation for previous and next pages.
*
* @since 0.71
*
* @param string $sep Optional. Separator for posts navigation links.
* @param string $prelabel Optional. Label for previous pages.
* @param string $nxtlabel Optional Label for next pages.
*/
function posts_nav_link( $sep = '', $prelabel = '', $nxtlabel = '' ) {
$args = array_filter( compact('sep', 'prelabel', 'nxtlabel') );
echo get_posts_nav_link($args);
}
利用这些知识,我们可以创建一种简单有效的方法来确定是否需要添加链接以在页面之间导航:
$posts_nav = get_posts_nav_link();
if(empty($posts_nav)) {
// do not use posts_nav_link()
} else {
// use posts_nav_link()
}
最初发布在我的博客在这里。
get_query_var( 'paged' )
两次调用是多余的。该函数的可选第二个参数是默认值。因此,您可以将其简化为:$paged = get_query_var( 'paged', 1 );