📜  wordpress 获取页码 - PHP (1)

📅  最后修改于: 2023-12-03 15:35:44.451000             🧑  作者: Mango

WordPress 获取页码 - PHP

当你在开发 WordPress 主题或插件时,你可能需要获取当前页面的页码。本篇文章将介绍如何使用 PHP 代码在 WordPress 中获取页码。

第一步:获取当前页码

在 WordPress 中,我们可以使用 get_query_var('paged') 函数来获取当前页码。但是,这个函数有一个问题:如果用户没有指定页码,默认情况下它会返回 -1。为了避免这个问题,我们可以将 get_query_var('paged') 修改为以下代码:

if (get_query_var('paged')) {
  $paged = get_query_var('paged');
} elseif (get_query_var('page')) {
  $paged = get_query_var('page');
} else {
  $paged = 1;
}

这个代码块将首先检查是否存在 paged 参数,如果不存在,则检查是否存在 page 参数。如果都不存在,则设置 $paged 变量为 1

第二步:查询结果和最大页码

现在,我们已经可以获取当前页码了。下一步是计算结果和最大页码。我们可以使用以下代码段:

$args = array(
  'post_type' => 'post',
  'post_status' => 'publish',
  'posts_per_page' => 10,
  'paged' => $paged
);

$the_query = new WP_Query( $args );
$max_num_pages = $the_query->max_num_pages;

这个代码块将设置一个 WP_Query 对象以获取查询结果,包括当前页码的帖子。接下来,我们可以使用 $the_query->max_num_pages 属性来获取结果集的最大页码数。最后,我们需要重置 WordPress 查询,请使用以下代码:

wp_reset_query();
第三步:创建页码链接

最后,我们需要使用以下代码块来创建我们的页码链接:

for ($i = 1; $i <= $max_num_pages; $i++) {
  if ($i == $paged) {
    echo '<span class="active">' . $i . '</span>';
  } else {
    echo '<a href="' . get_pagenum_link($i) . '">' . $i . '</a>';
  }
}

这个代码块将创建一个 for 循环,每个循环输出一个页码链接。如果循环的当前值等于当前页码,则添加一个 active 类。否则,输出一个链接到该页面链接的链接。

以上就是获取 WordPress 页码的基本方法。根据需要,您可以在代码块中添加其他控件,例如上一页和下一页链接。