Cum pot adăuga suport pentru meniurile personalizate în tema mea? (WordPress, Teme, Meniuri)

nimeni a intrebat.

Am citit câteva tutoriale despre cum să adaug la tema mea funcționalitatea meniurilor personalizate adăugate în versiunea 3.0, dar toate par să difere oarecum și nu sunt sigur dacă nu cumva conțin cod superfluu. În plus, am citit că codul pentru a înregistra tema ca fiind compatibilă cu meniurile s-a schimbat între RC și versiunea publică.

Care este cel mai simplu mod de a adăuga suport pentru meniuri personalizate la tema mea?

3 răspunsuri
John P Bloch

Cel mai simplu mod este să utilizați opțiunea register_nav_menus Funcția.Aceasta ar trebui să fie conectată la 'after_setup_theme':

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

add_action( 'after_setup_theme', 'my_cool_menu_function' );

Apoi, în tema dvs., pur și simplu apelați poziția acelui meniu:

wp_nav_menu( array( 'theme_location' => 'primary' ) );

artlung

Adăugați acest lucru la functions.php din tema dvs. Dacă nu aveți una, creați-o.:

<?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' );
?>

Și acest lucru poate merge oriunde, eu îl am în header.php (vezi wp_nav_menu() docs):

<?php
$args = array(
    'menu' => 'Main Menu',
    'sort_column' => 'menu_order',
    'container' => 'div',
);
wp_nav_menu( $args ); ?>

Comentarii

Ben Everard

Acest mod de a include navigația personalizată în forma sa cea mai simplă, cred că preia navigația cu nu identificator:

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

Există, de asemenea, opțiuni de bază care pot fi trecute în funcție, iată ce folosesc în general:

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