it-swarm.dev

Wie füge ich meinem Thema Unterstützung für benutzerdefinierte Menüs hinzu?

Ich habe ein paar Tutorials gelesen, in denen erklärt wird, wie ich die Funktionalität der in Version 3.0 hinzugefügten benutzerdefinierten Menüs meinem Thema hinzufügen kann, aber sie scheinen sich alle etwas zu unterscheiden, und ich bin nicht sicher, ob sie überflüssigen Code enthalten. Außerdem habe ich gelesen, dass sich der Code zum Registrieren Ihres Themas als menükompatibel zwischen dem RC und der öffentlichen Veröffentlichung geändert hat.

Wie kann ich meinem Thema am einfachsten Unterstützung für benutzerdefinierte Menüs hinzufügen?

6
nobody

Am einfachsten ist es, die Funktion register_nav_menus zu verwenden. Dies sollte in 'after_setup_theme' eingebunden sein:

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

add_action( 'after_setup_theme', 'my_cool_menu_function' );

Rufen Sie dann in Ihrem Thema einfach die Position dieses Menüs auf:

wp_nav_menu( array( 'theme_location' => 'primary' ) );
9
John P Bloch

Fügen Sie dies zufunctions.phpIhres Themas hinzu. Wenn Sie noch keine haben, erstellen Sie diese:

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

Und das kann überall hingehen, ich habe es inheader.php(siehe wp_nav_menu () docs):

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

So wird die benutzerdefinierte Navigation in ihrer einfachsten Form eingebunden. Ich glaube, dass sie die Navigation ohne Bezeichner aufnimmt:

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

Es gibt auch grundlegende Optionen, die an die Funktion übergeben werden können. Ich verwende im Allgemeinen die folgenden Optionen:

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