【问题标题】:How insert title attribute in a template Wordpress如何在模板 Wordpress 中插入标题属性
【发布时间】:2020-06-17 07:24:44
【问题描述】:

我的 wordpress 模板不显示菜单的标题属性(但如果我更改模板就可以了),我该如何解决?该网站位于 www.imsdesign.eu

【问题讨论】:

    标签: wordpress menu


    【解决方案1】:

    我假设您通过执行以下步骤将标题属性添加到菜单:

    1. 从您的 WordPress 仪表板,转到您的菜单页面(外观 > 菜单)
    2. 从菜单列表中选择要编辑的菜单。
    3. 点击菜单项标题右侧的配置箭头,点击后打开配置框。
    4. 点击页面顶部的“屏幕选项”以显示其他高级菜单属性。
    5. 通过选择标题属性框来激活标题属性选项以立即显示菜单项下的设置框。
    6. 在导航标签选项正下方的文本框中添加您的标题属性。

    如果它仍然不起作用,则意味着您的 WP 主题没有标题属性。要更改它,请找到正确的 WP 模板(可能是 header.php)并使用方法 the_title_attribute() 将标题属性添加到导航元素

    【讨论】:

    • 是的,从 1 到 6 点我设置得很好,但只有 Altius 模板我有这个问题,
    • 这意味着该模板没有标题属性,您必须编辑模板文件并使用我在答案第二部分中描述的 the_title_attribute() 方法。请在此处附加 header.php 文件..我会看看你能做什么..
    【解决方案2】:
    <?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;
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-19
      • 1970-01-01
      • 2017-12-04
      • 2012-10-08
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多