如何确定我是否在分页的第一页上?我正在使用WP_Pagenavi。我只想在分页的第一页上运行一个函数。我检查了query_var'paged',在此页面上将其设置为0,然后在后面的页面中将其设置为2、3,依此类推(缺少1)! >谢谢。

#1 楼

// 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
}


评论


这是正确的,但是两次调用get_query_var('paged')是多余的。该函数的可选第二个参数是默认值。因此,您可以将其简化为:$ paged = get_query_var('paged',1);

– Linnea Huxford
16-11-5在21:38



2017年8月:此代码不适用于我,其每页输出1个。但是,迈克尔的答案很完美。

– Surjith S M
17年8月17日在15:38

#2 楼

如果您只想知道自己位于分页页面的第一页,请尝试is_paged()

if ( !is_paged() ) {
  // first page of pagination
}


评论


这个为我工作。 (2017年8月)。以某种方式标记为正确的答案无法正常工作。

– Surjith S M
17年8月17日在15:38

优秀,干净,简单。

–追踪DeCoy
18-2-28在9:52

不再工作了(2020年1月)

– Gangesh
20年1月24日在9:28

@Gangesh工作正常。这是简单的WordPress条件,请参阅:developer.wordpress.org/reference/functions/is_paged

–crdunst
20-2-19在12:33

#3 楼

我一直在寻找一种简单的方法来确定是否使用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);
}



最初发布在我的博客上。