我使用以下代码在我的 WordPress 页面上生成分页:
<?php
global $wp_query;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
) );
?>
注意
'format' => '?paged=%#%'
。根据 Codex,漂亮的链接会有不同的格式,即 codex 说
格式 (字符串)(可选)用于分页结构。默认值是
,如果使用漂亮的永久链接,这将是'?page=%#%'
,其中'/page/%#%'
被页码替换。 默认:'%#%'
'?page=%#%'
我得到的是,每当我更改永久链接格式时,我都必须更改主题文件中的 php 代码。这将非常乏味,所以有什么方法可以让我的分页适应永久链接样式,即如果我将永久链接样式更改为漂亮,它不会中断?
我在 WordPress Codex here
中挖出了一些东西using_mod_rewrite_permalinks - 返回 true,您的博客正在通过 mod_rewrite 使用“漂亮”的永久链接。
所以试试这个
<?php
global $wp_query;
global $wp_rewrite;
$big = 999999999; // need an unlikely integer
if( $wp_rewrite->using_mod_rewrite_permalinks() ) {
myformat = '/page/%#%';
} else {
myformat = '?page=%#%';
}
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => myformat,
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
) );
?>