PHP/Wordpress - 向父菜单添加箭头

Ale*_*lex 7 php wordpress menu

是否可以在菜单中添加某些类似"箭头"或跨度的类(在Wordpress中)?看来你可以这样做是使用javascript,但我想知道是否有PHP解决方案...

在WP 3.0中,我看到活动菜单上有"父"或"祖先"类,但这只适用于活动菜单,我也需要它用于非活动菜单

Don*_*vey 12

这个功能真的应该在WordPress核心!
无论如何,我看了一下你在另一个答案的评论中发送的菜单模板源,并找到了一个(相当hacky)方法在带有孩子的菜单项上添加一个类.它基本上是默认walker的子类,以扩展其默认行为.如果你把它放在你的主题中,这可能是最好的functions.php.这是代码:

<?php
class Arrow_Walker_Nav_Menu extends Walker_Nav_Menu {
    function display_element($element, &$children_elements, $max_depth, $depth=0, $args, &$output) {
        $id_field = $this->db_fields['id'];
        if (!empty($children_elements[$element->$id_field])) { 
            $element->classes[] = 'arrow'; //enter any classname you like here!
        }
        Walker_Nav_Menu::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

要调用它,您需要walker在调用wp_nav_menu()主题时添加参数,如下所示:

<?php 
wp_nav_menu(array('walker' => new Arrow_Walker_Nav_Menu, [other arguments...]))
?>
Run Code Online (Sandbox Code Playgroud)

希望对你有用!我只是在表面上测试它,但它似乎工作.如果有任何边缘情况,添加类失败,请告诉我.