问题是重写规则重叠,WordPress正试图找到与post slug匹配的类别名称。
一种可能的解决方案是执行一些手动查询解析,检查请求是否包含category_name
并首先是一个术语,然后将查询变量重置为postname
如果未找到任何内容:
function wpd_fix_category_requests( $request ){
if( array_key_exists( \'category_name\' , $request )
&& ! get_term_by( \'slug\', basename( $request[\'category_name\'] ), \'category\' ) ){
$request[\'name\'] = basename( $request[\'category_name\'] );
unset( $request[\'category_name\'] );
}
return $request;
}
add_filter( \'request\', \'wpd_fix_category_requests\' );
这是非常基本的,对于黄金时段来说可能不够可靠。显然,您不能有与类别名称匹配的post slug。此外,单一的后期分页将不起作用,我假设附件URL也将被破坏。
如果你愿意的话,你可以按照这个方法解决所有这些问题。看看什么$request
包含每种类型的页面视图,可能具有不同的永久链接结构,以便您可以看到成功案例中的外观。您只需将查询变量从一种请求转换为另一种请求,WordPress将继续加载正确的对象。