你自己回答了自己的问题。
您希望自定义类别的链接如下所示
{taxonomy_slug}/{parent_term}/{child_term}/{grandchild_term}/
因此,您应该注意
register_taxonomy()
参数:
hierarchical
和
rewrite
.
$args = [
\'hierarchical\' => true, // <-- term may have a parent
\'labels\' => $labels,
\'rewrite\' => [
// hierarchical urls, defaults to FALSE
\'hierarchical\' => true, // <--
]
];
您的自定义分类是由父主题创建的,因此要更改它,请使用
register_taxonomy_args
过滤器:
add_filter( \'register_taxonomy_args\', \'se344007_mytax_args\', 10, 2 );
function se344007_mytax_args( $args, $taxonomy )
{
if ( \'mytax\' !== $taxonomy ) {
return $args;
}
// it looks like it\'s already set up by parent theme
// $args[\'hierarchical\'] = true;
if ( !is_array($args[\'rewrite\']) )
$args[\'rewrite\'] = [];
$args[\'rewrite\'][\'hierarchical\'] = true;
return $args;
}
注册自定义分类法时,指向术语(自定义类别)的默认链接为
{taxonomy_slug}/{child_term_slug}
即使分类法是分层的,因为默认情况下,创建的链接不是分层的($args[\'rewrite\'][\'hierarchy\']=false)。