需要帮助了解分页参数

时间:2016-08-25 作者:jrcollins

我一直在试图找到以下代码的解释,我正在使用这些代码向自定义类别模板添加分页。

$catpage = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
            $catnum = 3;
            $offset = ($catnum * $catpage) - 3;
特别是,我想知道查询变量“paged”的确切含义以及“offset”的含义。

2 个回复
最合适的回答,由SO网友:birgire 整理而成

以下代码行:

$paged = ( get_query_var(\'paged\') ) ? get_query_var(\'paged\') : 1;
正在使用ternary operator ?:

这是一个简写符号

if( get_query_var( \'paged\' ) )
    $paged = get_query_var(\'paged\' );
else
    $paged = 1;
事实上,通过使用第二个输入参数作为默认值,这可以进一步简化,即:

$paged = get_query_var( \'paged\', 1 );
请参见get_query_var() 函数定义here.

什么是查询变量?

让我引用Codex:

查询变量定义WordPress帖子的查询。

启用丑陋的永久链接后,可以在URL中看到查询变量。例如,在URL中http://example.com/?p=1 p query变量设置为1,将显示ID为1的单个帖子。

启用了永久链接后,URL不包含查询变量。相反,WordPress通过重写API将URL转换为查询变量,用于填充查询。

我看到您为问题添加了更多代码:

$catpage = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$catnum = 3;
$offset = ($catnum * $catpage) - 3;
让我们查看一个名为blue:

paged 第一页上未定义查询变量

http://example.tld/category/blue/
然后将其设置为1,然后:

offset = 3 * 1 - 3 = 0
paged 查询变量为2(第二页)

http://example.tld/category/blue/page/2/
然后:

offset = 3 * 2 - 3 = 6 - 3 = 3
paged 第三页上的查询变量为3

http://example.tld/category/blue/page/3/
然后:

offset = 3 * 3 - 3 = 9 - 3 = 6

SO网友:Bhagchandani

它将返回当前页码。如果paged 变量未设置,它将返回1. 1 表示分页中的第1页。

相关推荐

change pagination url

目前,我的分页页面URL为:http://www.example.com/category_name/page/2但我需要将此URL结构更改为:http://www.example.com/category_name/?page=2等有什么解决方案吗?