我创建了页面 /directors 并添加了此重写规则以从 /directors/{country} 获取 /directors?country={country}:
add_action('init', function () {
add_rewrite_tag('%country%', '([^&]+)', 'country=');
add_rewrite_rule('.*directors/([^/]+)[/]?$', '?pagename=directors&country=$matches[1]');
});
然后 WP 在永久链接刷新时在 .htaccess 上添加此规则
RewriteRule ^.*directors/([^/]+)[/]?$ /?pagename=directors&country=$matches[1] [QSA,L]
`
但是当我尝试传递例如 /directors/usa 时,WP 会自动将我重定向到 /directors/,因此不会传递任何国家/地区参数
我该如何解决这个问题?谢谢!
您可以按照以下步骤操作。
添加重写规则:
add_action('init', function () { add_rewrite_tag('%country%', '([^&]+)', 'country='); add_rewrite_rule('^directors/([^/]+)/?$', 'index.php?pagename=directors&country=$matches[1]', 'top'); });
为了防止重定向:
add_filter('redirect_canonical',函数($redirect_url,$requested_url){return(strpos($requested_url,'/directors/')!== false)?false:$redirect_url;},10,2);
对于白名单查询变量:
add_filter('query_vars',函数($vars){$vars[] = 'country'; 返回$vars; });
然后再次保存您的永久链接..然后如果您使用缓存插件,则清除您的网站缓存。
使用后请通知我。