重写WordPress标签页中的查询参数

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

我有一个 URL https://example.com/tag/tag-name/?view=overview 我使用下面的代码将其重写为 https://example.com/tag/tag-name/overview :

function custom_rewrite_rules() {
    add_rewrite_rule(
        '^tag/([^/]+)/([^/]+)/?$',
        'index.php?tag=$matches[1]&view=$matches[2]',
        'top'
    );
}
add_action( 'init', 'custom_rewrite_rules' );

然后,我尝试在安装在子目录中的 WordPress 网站上执行相同的操作

https://example.com/wordpress/tag/tag-name/overview
,但它显示 404。

我还尝试将子目录添加到函数中,如下所示:

function custom_rewrite_rules() {
    add_rewrite_rule(
        '^wordpress/tag/([^/]+)/([^/]+)/?$',
        'index.php?tag=$matches[1]&view=$matches[2]',
        'top'
    );
}
add_action( 'init', 'custom_rewrite_rules' );

但仍然显示404。

php wordpress wordpress-theming
1个回答
0
投票
  1. 验证您的 WordPress 地址设置是否正确。确保设置 > 常规中的 WordPress 地址 (URL) 和站点地址 (URL) 配置正确。
  2. 您不需要在重写规则本身中包含子目录路径。 WordPress 应该自动处理这个问题,因此您可以使用原始函数而不需要子目录前缀。
  3. 如果您更新重写规则或站点设置,请再次刷新永久链接。

此外,您还可以暂时使用此功能来查看WordPress已存储的重写规则:

<?php
 add_action('init', function() {
    global $wp_rewrite;
    echo '<pre>';
    print_r($wp_rewrite->rules);
    echo '</pre>';
    exit;
});
© www.soinside.com 2019 - 2024. All rights reserved.