自定义主题中的 WordPress 分页

问题描述 投票:0回答:1

我使用以下代码在我的 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 代码。这将非常乏味,所以有什么方法可以让我的分页适应永久链接样式,即如果我将永久链接样式更改为漂亮,它不会中断?

php wordpress wordpress-theming
1个回答
0
投票

我在 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
) );
?>
© www.soinside.com 2019 - 2024. All rights reserved.