有两个很好的解决方案:
WP_Rewrite 类有一个名为 $use_trailing_slashes 的变量,它是根据您的自定义永久链接结构是否以“/”结尾而动态设置的。
$this->use_trailing_slashes = ( '/' == substr($this->permalink_structure, -1, 1) );
这意味着所有 WP 生成的链接(the_permalink、category_link、the_permalink_rss 等)都不会以“/”结尾。因此,对于类别页面,WP 将显示“/category/category”而不是“/category/category/”。
您可以通过使用过滤器或修改您的 .htaccess 或两者来解决它:
user_trailingslashit 过滤器示例
user_trailingslashit 函数在返回结果之前将“user_trailingslashit”过滤器应用于结果。它为过滤器提供 url 和 url 的类型。
$string = apply_filters('user_trailingslashit', $string, $type_of_url);
因此,要挂钩并在除单个帖子之外的所有 URL 中添加尾部斜杠,请将此代码添加到插件文件或您的 functions.php 主题文件中。
function fix_trailingsss($s='',$t='single')
{
if($t!='single')$s=rtrim($s,'/').'/';
return preg_replace('/^(.*)([^l/])$/i', '\1\2/',$s);
}
add_filter('user_trailingslashit', 'fix_trailingsss', 9999,2);
Htaccess 重定向匹配
您可以设置 .htaccess 重定向以强制类别网址始终使用尾部斜杠,如下所示:
RedirectMatch 301 ^/category/([^/]+)$ /category/$1/
信息来源:https://www.askapache.com/wordpress/adding-trailing-permalinks/
如有任何其他问题,请查阅法典:
https://codex.wordpress.org/wp_rewrite
https://codex.wordpress.org/Using_Permalinks