📅  最后修改于: 2023-12-03 15:35:44.451000             🧑  作者: Mango
当你在开发 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 页码的基本方法。根据需要,您可以在代码块中添加其他控件,例如上一页和下一页链接。