How can I add parent menu description to my Wordpress menu?

前端 未结 2 869
遥遥无期
遥遥无期 2020-12-20 02:18

I\'ve entered the description into the parent menu items in Wordpress, but they\'re not showing on my theme.

I know that a walker class can be used to make changes t

2条回答
  •  臣服心动
    2020-12-20 02:40

    ok i'm not sure if this is fool proof but here's my try:

    so you would need to make sure description is on in the admin menu console (in the 'screen options' dropdown)

    Your first menu item should be Face then Face again as its child then sub neu items as children to that.

    Hope this helps!

    in your functions.php

    class Description_Walker extends Walker_Nav_Menu
    {
        /**
         * Start the element output.
         *
         * @param  string $output Passed by reference. Used to append additional content.
         * @param  object $item   Menu item data object.
         * @param  int $depth     Depth of menu item. May be used for padding.
         * @param  array $args    Additional strings.
         * @return void
         */
         function display_element( $element, &$children_elements, $max_depth, $depth=0, $args, &$output )
    {
        $id_field = $this->db_fields['id'];
        if ( is_object( $args[0] ) ) {
            $args[0]->has_children = ! empty( $children_elements[$element->$id_field] );
        }
        return parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
    }
    function start_lvl( &$output, $depth=0, $args=array() ) {
        // depth dependent classes
        $indent = ( $depth > 0  ? str_repeat( "\t", $depth ) : '' ); // code indent
        $display_depth = ( $depth); // because it counts the first submenu as 0
        $classes = array('sub-menu');
        $class_names = implode( ' ', $classes );
    
        // build html
        $output .= "\n" . $indent . '
      ' . "\n"; } function start_el(&$output, $item, $depth = 0, $args = array(), $current_object_id = 0) { $classes = empty ( $item->classes ) ? array () : (array) $item->classes; $class_names = join( ' ' , apply_filters( 'nav_menu_css_class' , array_filter( $classes ), $item ) ); if ($args->has_children && $depth == 0){ ! empty ( $class_names ) and $class_names = ' class="menu-parent-item"'; }else if($depth == 1){ ! empty ( $class_names ) and $class_names = ' class="heading"'; }else{ ! empty ( $class_names ) and $class_names = ' class="'. esc_attr( $class_names ) .'"'; } $output .= "

    in your header (or wherever your menu is)

    
    

提交回复
热议问题