Simon
Simon

Reputation: 3

How insert title attribute in a template Wordpress

my wordpress template does not display the title attribute of the menu (but if I change the template it is okay), how could i solve it? the website in www.imsdesign.eu

Upvotes: 0

Views: 293

Answers (2)

Simon
Simon

Reputation: 3

<?php

class FastwpAltiusMenu {

    private static $nav_template = '';
    private static $nav_overlay = '';

    function __construct() {
        global $fastwp_altius_data, $fastwp_altius_menu_type;

        $templates      = array();
        $templates[1]   = array( 'nav' => 'fastwp-menu-default', 'overlay' => '' );
        $templates[2]   = array( 'nav' => 'fastwp-menu-overlay', 'overlay' => 'fastwp-menu-overlay2' );

        if( is_page() ) {
            $fastwp_altius_meta_type = get_post_meta( get_the_ID(), 'p_nav_style', true );
            if( $fastwp_altius_meta_type == 1 || $fastwp_altius_meta_type == 2 ) {
                $fastwp_altius_data['nav_style'] = $fastwp_altius_meta_type;
            }
        }

        $menu = !empty( $fastwp_altius_data['nav_style'] ) && in_array( (int) $fastwp_altius_data['nav_style'], array_keys( $templates ) ) ? (int) $fastwp_altius_data['nav_style'] : 1;

        $fastwp_altius_menu_type= $menu;
        self::$nav_template     = $templates[$menu]['nav'];
        self::$nav_overlay      = $templates[$menu]['overlay'];
    }

    public static function nav( $echo = true ) {
        if( (boolean) $echo ) {
            echo get_template_part( 'fastwp/menu/' . self::$nav_template );
        }
        ob_start();
        get_template_part( 'fastwp/menu/' . self::$nav_template );
        $content = ob_get_contents();
        ob_end_clean();

        return $content;
    }

    public static function overlay( $echo = true ) {
        $nav_overlay = self::$nav_overlay;
        if( !empty( $nav_overlay ) ) {
            if( (boolean) $echo ) {
                echo get_template_part( 'fastwp/menu/' . $nav_overlay );
            }
            ob_start();
            get_template_part( 'fastwp/menu/' . $nav_overlay );
            $content = ob_get_contents();
            ob_end_clean();

            return $content;
        }
    }

}


class FastwpAltiusWalker {

    var $one_page = false;

    function __construct( $menu_id, $menu = 0 ) {
        $this->override_menu = $menu;
        $elements = $this->nice_elements( $menu_id );
        $this->main_elements = isset( $elements['main'] ) ? $elements['main'] : array();
        $this->subnav_elements = isset( $elements['subnav'] ) ? $elements['subnav'] : array();
    }

    function set_onePage() {
        $this->one_page = true;
    }

    function add_one_page_section( $item ) {
        if( $this->one_page ) {
            global $fastwp_altius_one_page_sections;
            if( $item->object == 'page' ) {
                if( empty( $fastwp_altius_one_page_sections ) ) $fastwp_altius_one_page_sections = array();
                $section_name = preg_replace( '/[^a-z0-9_]/i', '', str_replace( ' ', '_', $item->title ) );
                if( in_array( $section_name, array_keys( $fastwp_altius_one_page_sections ) ) ) {
                    $section_name = $section_name . '_' . $item->ID;
                }
                $fastwp_altius_one_page_sections[$section_name] = $item->object_id;
                return '#section-' . $section_name;
            }
        }

        return $item->url;
    }

    function get_menu() {

        $output = '';

        if( !empty( $this->main_elements ) ) {

        /* Add Visual Composer meta */
        global $fastwp_altius_one_page_css_vc;
        $fastwp_altius_one_page_css_vc = array();

        foreach( $this->main_elements as $item ) {

            $item = $item[0];

            $typeparent = get_post_meta( $item->ID, '_menu_item_menutype', true );

            /* Add Visual Composer meta */
            if( isset( $item->object_id ) ) {
                $fastwp_altius_one_page_css_vc[$item->object_id] = get_post_meta( $item->object_id, '_wpb_shortcodes_custom_css', true );
            }

            $a_classes = $li_classes = $a_atts = $li_atts = array();

            if( get_the_ID() == $item->object_id ) {
                $li_classes[] = 'current';
            }

            if( isset( $item->hasChildren ) && $item->hasChildren ) {
                $a_classes[] = 'sf-with-ul';
            }

            if( isset( $this->subnav_elements[$item->ID] ) ) {
                $li_classes[] = 'parentMenuItem';
            }

            if( !empty( $item->classes ) ) {
                $a_classes[] = implode( ' ', $item->classes );
            }

            $childrens = '';

            if( $typeparent == 'mega2' ) {

                $li_classes[] = 'dropDown megaMenu';

                $items_array = $this->levels_recursive_array( $item->ID );
                unset( $items_array['subnav'] );

                $items_per_col = ceil( count( $items_array ) / 2 );

                $col1_items = $col2_items = '';

                foreach( $items_array as $k => $mitem ) {
                    $typechild = get_post_meta( $mitem->ID, '_menu_item_menutype2', true );
                    if( $k >= $items_per_col ) {
                        $col2_items .= $this->link_type( $mitem, $typechild );
                    } else {
                        $col1_items .= $this->link_type( $mitem, $typechild );
                    }
                }

                $childrens = '<div class="megaMenuContent cols2 clearfix">';
                $childrens .= '<ul>' . $col1_items . '</ul>';
                $childrens .= '<ul>' . $col2_items . '</ul>';
                $childrens .= '</div>';

            } else if( $typeparent == 'mega3' ) {

                $li_classes[] = 'dropDown megaMenu';

                $items_array = $this->levels_recursive_array( $item->ID );
                unset( $items_array['subnav'] );

                $items_per_col = ceil( count( $items_array ) / 3 );

                $col1_items = $col2_items = $col3_items = '';

                foreach( $items_array as $k => $mitem ) {
                    $typechild = get_post_meta( $mitem->ID, '_menu_item_menutype2', true );
                    if( $k < $items_per_col ) {
                        $col1_items .= $this->link_type( $mitem, $typechild );
                    } else if( $k/2 >= $items_per_col ) {
                        $col3_items .= $this->link_type( $mitem, $typechild );
                    } else {
                        $col2_items .= $this->link_type( $mitem, $typechild );
                    }
                }

                $childrens = '<div class="megaMenuContent cols3 clearfix">';
                $childrens .= '<ul>' . $col1_items . '</ul>';
                $childrens .= '<ul>' . $col2_items . '</ul>';
                $childrens .= '<ul>' . $col3_items . '</ul>';
                $childrens .= '</div>';

            } else {

                $childrens = $this->levels_recursive( $item->ID );

            }

            $output .= sprintf( "\n" . '<li%s%s><a href="%s"%s%s>%s</a>%s</li>',
                    ( !empty( $li_classes ) ? ' class="' . implode( $li_classes, ' ' ) . '"' : '' ),
                    ( !empty( $li_atts ) ? ' ' . implode( ' ', $li_atts ) : '' ),
                    $this->add_one_page_section( $item ),
                    ( !empty( $a_classes ) ? ' class="' . implode( $a_classes, ' ' ) . '"' : ' ' ),
                    ( !empty( $a_atts ) ? ' ' . implode( ' ', $a_atts ) : '' ),
                    $item->title,
                    $childrens );

        }

        }

        return $output;
    }

    function link_type( $item = '', $type = '' ) {
        $li_classes = array();

        if( get_the_ID() == $item->object_id ) {
            $li_classes[] = 'current';
        }

        if( $type == 'title' ) {
            return '<li class="megaMenuTitle' . ( !empty( $li_classes ) ? ' ' . implode( ' ', $li_classes ) : '' ) . '">' . $item->title . '</li>';
        } else {
            return '<li' . ( !empty( $li_classes ) ? ' class="' . implode( ' ', $li_classes ) . '"' : '' ) . '><a href="' . $this->add_one_page_section( $item ) . '">' . $item->title . '</a></li>';
        }
    }

    function levels_recursive( $parent = 0, $level = 1 ) {
        if( empty( $parent ) ) return ;

        $output = '';

        if( isset( $this->subnav_elements[$parent] ) ) {
            $output .= '<ul class="fastwp-menu-level-' . $level . '">';
            foreach( $this->subnav_elements[$parent] as $item ) {
                $output .= '<li' . ( $this->item_has_children( $item->ID ) ? ' class="dropDown"' : '' ) . '><a href="' . $this->add_one_page_section( $item ) . '">' . $item->title . '</a>';
                $output .= $this->levels_recursive( $item->ID, ($level+1) );
                $output .= '</li>';
            }
            $output .= '</ul>';
        }

        return $output;
    }

    function item_has_children( $item = '' ) {
        if( in_array( $item, array_keys( $this->subnav_elements ) ) ) {
            return true;
        }
        return false;
    }

    function levels_recursive_array( $parent = 0 ) {
        if( empty( $parent ) ) return array();

        $output = array();

        if( isset( $this->subnav_elements[$parent] ) ) {
            foreach( $this->subnav_elements[$parent] as $item ) {
                $output[] = $item;
                $output['subnav'] = $this->levels_recursive( $item->ID );
            }
        }

        return $output;
    }

    function nice_elements( $menu_id ) {
        $elements = array();
        foreach( $this->get_elements( $menu_id ) as $element ) {
            if( !empty( $element->menu_item_parent ) ) {
                $elements['subnav'][$element->menu_item_parent][] = $element;
            } else {
                $elements['main'][$element->ID][] = $element;
            }
        }
        return $elements;
    }

    function get_elements( $menu_id = 'primary' ) {
        $locations = get_nav_menu_locations();

        if( !empty( $this->override_menu ) ) {
            $menu = $this->override_menu;
        } else {
            $menu = $locations[$menu_id];
        }

        $elems = wp_get_nav_menu_items( get_term( $menu, 'nav_menu' ), array( 'depth' => 1 ) );

        $return_elems = array();
        foreach( $elems as $elem ) {
            $return_elems[] = $elem;
        }
        return $return_elems;
    }

}

Upvotes: 0

Mario Boss
Mario Boss

Reputation: 1975

I am assuming that you added title attributes to you menu by doing below steps:

  1. From your WordPress dashboard, go to your Menus page (Appearance > Menus)
  2. Select the Menu that you want to edit from the list of your Menus.
  3. Click on the configuration arrow on the right side of the Menu Item title, that when clicked opens the configuration box.
  4. Click on the “Screen Options” on top of the page to reveal additional advanced menu properties.
  5. Activate the option for Title Attribute by selecting the Title Attribute box to expose the settings box under the Menu item instantly.
  6. Add your Title Attribute in the text box just below the Navigation label option.

If it is still not working that's mean that you WP theme does not has title attributes. To change it please find the correct WP template (probably header.php) and add title attributes to nav elements by using method the_title_attribute()

Upvotes: 1

Related Questions