问题不在于WordPress,它确实生成了适当的永久链接,而只是分配给grandson
或son
和father
. 只是对于后者,“选定”类别可以是son
或father
, 但不是两者都有——如果是son
(具有父类别),则permalink将具有/father/son/
而且不仅仅是/father/
.
但是你想要的结构是可能的
编辑帖子时,通过手动干预可以更好地实现这一点,您需要为帖子选择一个主要类别。
在我的回答中,我很少建议使用3个rd派对插件,但这次,我想你应该知道plugin 这对你有帮助。Yoast SEO也有类似的功能,但不确定它如何/是否适用于永久链接。。
或者,如果您想以编程/手动方式(无需任何花哨的UI)进行操作,那么一种简单的方法是:
使用标准custom fields editor 并添加一个名为primary_category
使用slug类(例如。grandson
如您的示例所示)作为字段的值。
使用post_link_category
钩子过滤/设置WordPress在生成具有%category%
在结构中:(此代码将放在主题函数文件中)
add_filter( \'post_link_category\', function ( $cat, $cats, $post ) {
if ( $post && ( $slug = get_post_meta( $post->ID, \'primary_category\', true ) ) ) {
$term = get_category_by_slug( $slug );
$cat = $term ? $term : $cat; // use $term if it\'s valid
}
return $cat;
}, 10, 3 );
注:该代码用于标准类别分类法。您必须根据自定义分类法对其进行相应的调整。:)