问题描述

如何确定我是否在第一页分页?我正在使用 WP_Pagenavi 。我只想在分页的第一页上运行一个函数。我检查了 query_var ‘paged’,它在这个页面上设置为 0,然后在后面的页面中设置为 2,等等 (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
}

次佳解决方案

如果你只想知道你在分页的第一页上尝试 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()
}

最初发布在我的博客 here

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。