Как вставить атрибут заголовка в шаблон Wordpress - PullRequest
2 голосов
/ 04 марта 2020

мой шаблон WordPress не отображает атрибут заголовка меню (но если я изменю шаблон, все в порядке), как я могу его решить? сайт в www.imsdesign.eu

Ответы [ 2 ]

3 голосов
/ 04 марта 2020

Я предполагаю, что вы добавили атрибуты заголовка в ваше меню, выполнив следующие шаги:

  1. С панели инструментов WordPress, go на страницу меню (Внешний вид> Меню)
  2. Выберите меню, которое вы хотите редактировать, из списка ваших меню.
  3. Нажмите на стрелку конфигурации в правой части заголовка пункта меню, который при нажатии открывает окно конфигурации.
  4. Нажмите «Параметры экрана» в верхней части страницы, чтобы открыть дополнительные расширенные свойства меню.
  5. Активируйте параметр «Атрибут заголовка», выбрав поле «Атрибут заголовка», чтобы мгновенно открыть окно настроек под элементом меню.
  6. Добавьте свой атрибут заголовка в текстовое поле чуть ниже параметра метки навигации.

Если он все еще не работает, это означает, что ваша тема WP не имеет атрибутов заголовка. Чтобы изменить его, найдите правильный шаблон WP (возможно, header. php) и добавьте атрибуты заголовка к элементам nav с помощью метода the_title_attribute ()

0 голосов
/ 04 марта 2020

класс 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;
    }
}

}

класс 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;
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...