Cliff_P
  • 0
Новичок

Как добавить в мою тему поддержку пользовательских меню?

  • 0

Я прочитал несколько руководств о том, как добавить в мою тему функциональность пользовательских меню, добавленных в версии 3.0, но все они, похоже, несколько отличаются, и я не уверен, содержат ли они лишний код. Кроме того, я читал, что код для регистрации вашей темы как совместимой с меню изменился между RC и общедоступной версией.

Каков самый простой способ добавить поддержку пользовательских меню в мою тему?

Share
  1. Самый простой способ — использовать register_nav_menus функцию. Это должно быть подключено к 'after_setup_theme' :

    function my_cool_menu_function(){
      register_nav_menus( array(
        'primary' => 'Primary Navigation'
      ));
    }
    
    add_action( 'after_setup_theme', 'my_cool_menu_function' );
    

    Затем в вашей теме просто вызовите позицию этого меню:

    wp_nav_menu( array( 'theme_location' => 'primary' ) );
    
    • 0
  2. Добавьте это в functions.php свою тему. Если у вас его нет, создайте его.:

    <?php
    add_theme_support('menus');
    function register_my_menus() {
        $args = array( 
            'menu-1' => __( 'Main Menu' )
        );
        register_nav_menus( $args );
    }
    add_action( 'init', 'register_my_menus' );
    ?>
    

    И это может пойти куда угодно, у меня это есть в header.php (см. wp_nav_menu () документы):

    <?php
    $args = array(
        'menu' => 'Main Menu',
        'sort_column' => 'menu_order',
        'container' => 'div',
    );
    wp_nav_menu( $args ); ?>
    
    • 0
  3. Вот как включить пользовательскую навигацию в ее простейшей форме, я считаю, что она выбирает навигацию без идентификатора:

    <div class="access">
      <?php wp_nav_menu(); ?>
    </div>
    

    Есть также базовые параметры, которые можно передать в функцию, вот что я обычно использую:

    $navArgs=array(
        'menu_id' => 'nav',    // target the nav menu
        'container' => '',     // don't wrap the menu in <ul>
    );
    
    • 0

Оставить ответ

You must login to add an answer.