使用过滤器挂钩nav_menu_css_class将自定义类添加到wp_nav_menu


8

我在wordpress主题中有一个自定义帖子类型。我想在该自定义帖子类型中创建的页面的导航菜单中添加一个自定义类。我读到您可以使用过滤器钩子:“ nav_menu_css_class”,但是我的php剁非常有限。如何设置该过滤器挂钩,使其仅应用于导航菜单中的自定义帖子类型页面,并为其提供自定义类?

Answers:


8

这是一个简单的示例:

add_filter('nav_menu_css_class', 'auto_custom_type_class', 10, 2 );
function auto_custom_type_class($classes, $item) {

    if ($item->type_label == "CUSTOM_TYPE_NAME"){
        $classes[] = "New_Class";
    }

    return $classes;
}

只需更改CUSTOM_TYPE_NAME为自定义帖子类型New_Class的名称以及您的班级的名称,然后将此代码段粘贴到主题的functions.php文件中即可。


那个有效。赞赏!
科林

很高兴我能帮上忙。
Bainternet 2011年

另一个问题:$item->type_label这是从哪里来的,还有其他可以应用于此变量“ $ item”的东西吗?
科林

1
$ item对象由apply_filters调用传递,它包含所有项目变量。您可以通过在函数中添加位置来获取列表var_dump($item);
Bainternet 2011年

哇,好甜!(只是跑了)真心知道。再次感谢。
科林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.