janw给出的公认答案非常接近,但是get_post_anscestors()
根据WordPress文档,实际上需要一个WP Post或其ID作为参数:
https://developer.wordpress.org/reference/functions/get_post_ancestors/
我这样实施,效果很好:
function highlight_portfolio($classes, $item) {
$parent = get_post_ancestors($item);
$parent_ID = $parent[0];
if ($parent_ID == $item->object_id) {
array_push($classes, \'current-menu-ancestor\');
}
return $classes;
}
add_filter(\'nav_menu_css_class\', \'highlight_portfolio\', 12, 2);
我只想把这作为一个评论,但还没有声誉,所以把它作为一个答案。