【发布时间】:2021-10-01 16:29:24
【问题描述】:
我的 WordPress 网站上有一个简单的搜索表单,它在用户提交表单后使用 method="get" 将变量添加到我的页面 URL。
表单提交后,页面 URL 如下所示:mydomain.com/for-sale/?category=testcategory&othervariable=xx
我使用以下代码重写了我的 URL 以使其对 SEO 更友好:
function category_query_vars( $query_vars ){
$query_vars[] = 'category';
return $query_vars;
}
add_filter('query_vars', 'category_query_vars');
function add_rewrite_rules($rules) {
$newrules = array(
'^for-sale/([^/]*)/?$' => 'index.php?pagename=for-sale/&category=$matches[1]',
);
$rules = $newrules + $rules;
return $rules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');
使用此代码,我可以访问mydomain/for-sale/testcategory,category 是我可以获得的查询变量。这工作正常。
但是,当用户提交搜索表单(我在其中设置 method='get')时,他们会被重定向到 mydomain.com/for-sale/?category=testcategory&othervariable=xx,我想将它们重定向到 mydomain.com/for-sale/testcategory/&othervariable=xx
我怎样才能做到这一点?我是否需要编辑我的add_rewrite_rules() 函数,或者我是否可以检查参数是否已添加到 URL 中然后进行重定向?
【问题讨论】:
标签: php wordpress url-rewriting url-parameters