您使用的是Codex中示例中的代码,但这是默认博客主页的默认“普通”永久链接。我的猜测是,您这样做是为了存档,而不是主页。
Search & Archive pages
默认情况下,
paginate_links
假设分页是针对主页上的博客。在所有其他情况下,您需要如下更改代码(参考:
Codex: paginate_links):
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
\'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
\'format\' => \'?paged=%#%\',
// rest of your arguments here
) );
What this does:
我们需要改变
paginate_links
使用存档页面的链接,而不是主页。我们通过改变
base
参数以包括url。我们还需要改变
format
使用正确的参数。
创建一个数字很大的变量,该变量不太可能是有效的页码,例如$big = 999999999;
设置base
论点
适用于base
, 您需要告诉paginate\\u links使用url。我们通过使用get_pagenum_link
获取永远不存在的页面的url,然后我们将url中的页码替换为实际页码
\'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) )
设置
format
参数
format
默认使用
page
参数(用于静态主页),因此我们需要将其更改为使用
paged
而是:
\'format\' => \'?paged=%#%\',
NOTE: Pretty Permalinks如果您正在主页上显示分页,并且使用了相当多的永久链接,但仍然存在问题,请尝试以下操作。
根据Codex,如果您使用的是“漂亮”永久链接,则应按以下方式更改格式:
\'format\' => \'/page/%#%\',
format (字符串)(可选)用于分页结构。默认值为
?page=%#%
, 如果使用漂亮的永久链接
/page/%#%
, 其中
%#%
替换为页码。
这是一个很好的实践,但不是必需的,因为Wordpress重写规则将自动转换?paged
参数