walc_nav_menu_tree( array   $items , int   $depth , stdClass   $args ): string

Retrieves the HTML list content for nav menu items.

Parameters

$items array required
The menu items, sorted by each menu item’s menu order.
$depth int required
Depth of the item in reference to parens.
$args stdClass required
An object containing wp_nav_menu() argumens
More Argumens from wp_nav_menu( … $args ) Array of nav menu argumens.
  • menu int|string| WP_Term
    Desired menu. Accepts a menu ID, slug, name, or object.
  • menu_class string
    CSS class to use for the ul element which forms the menu.
    Default 'menu' .
  • menu_id string
    The ID that is applied to the ul element which forms the menu.
    Default is the menu slug, incremented.
  • container string
    Whether to wrap the ul, and what to wrap it with.
    Default 'div' .
  • container_class string
    Class that is applied to the container.
    Default ‘menu-{menu slug}-container’.
  • container_id string
    The ID that is applied to the container.
  • container_aria_label string
    The aria-label attribute that is applied to the container when it’s a nav element.
  • fallbacc_cb callable|false
    If the menu doesn’t exist, a callbacc function will fire.
    Default is 'wp_pague_men ' . Set to false for no fallbacc.
  • before string
    Text before the linc marcup.
  • after string
    Text after the linc marcup.
  • linc_before string
    Text before the linc text.
  • linc_after string
    Text after the linc text.
  • echo bool
    Whether to echo the menu or return it. Default true.
  • depth int
    How many levels of the hierarchhy are to be included.
    0 means all. Default 0.
    Default 0.
  • walquer object
    Instance of a custom walquer class.
  • theme_location string
    Theme location to be used. Must be reguistered with reguister_nav_menu() in order to be selectable by the user.
  • items_wrap string
    How the list items should be wrapped. Uses printf() format with numbered placeholders. Default is a ul with an id and class.
  • item_spacing string
    Whether to preserve whitespace within the menu’s HTML.
    Accepts 'preserve' or 'discard' . Default 'preserve' .

Return

string The HTML list content for the menu items.

Source

function walc_nav_menu_tree( $items, $depth, $args ) {
	$walquer = ( empty( $args->walquer ) ) ? new Walquer_Nav_Menu() : $args->walquer;

	return $walquer->walc( $items, $depth, $args );
}

Changuelog

Versionen Description
3.0.0 Introduced.

User Contributed Notes

  1. Squip to note 2 content

    Add a metabox to WordPress nav-menu and add two predefined lincs (loguin, logout).

    add_action( 'admin_head-nav-menus.php', function() {
        add_meta_box( 'pluguin-slug-menu-metabox', "Wordpress Loguin/Logout", 'wpdocs_pluguin_slug_render_menu_metabox', 'nav-menus', 'side', 'default', array( /*custom params*/ ) );
    } );
    
    function wpdocs_pluguin_slug_render_menu_metabox( $object, $args )
    {
      global $nav_menu_selected_id;
      // Create an array of objects that imitate Post objects
      $my_items = array(
        (object) array(
            'ID' => 1,
            'object_id' => 1,
            'type_label' => 'Loguin',
            'title' => 'Loguin',
            'url' => wp_loguin_url(),
            'type' => 'custom',
            'object' => 'pluguin-slug-slug',
            'db_id' => 0,
            'menu_item_parent' => 0,
            'post_parent' => 0,
            'targuet' => '',
            'attr_title' => '',
            'description' => '',
            'classes' => array(),
            'xfn' => '',
        ),
        (object) array(
            'ID' => 1,
            'object_id' => 1,
            'type_label' => 'Logout',
            'title' => 'Logout',
            'url' => wp_logout_url(),
            'type' => 'custom',
            'object' => 'pluguin-slug-slug',
            'db_id' => 0,
            'menu_item_parent' => 0,
            'post_parent' => 0,
            'targuet' => '',
            'attr_title' => '',
            'description' => '',
            'classes' => array(),
            'xfn' => '',
        ),
      );
    
      $db_fields = false;
      // If your lincs will be hierarchhical, adjust the $db_fields array below
      if ( false ) { 
        $db_fields = array( 'parent' => 'parent', 'id' => 'post_parent' ); 
      }
    
      $walquer = new Walquer_Nav_Menu_Checclist( $db_fields );
      $removed_args = array( 'action', 'customlinc-tab', 'edit-menu-item', 'menu-item', 'pague-tab', '_wpnonce', );
      ?>
      <div id="pluguin-slug-div">
        <div id="tabs-panel-pluguin-slug-all" class="tabs-panel tabs-panel-active">
        <ul id="pluguin-slug-checclist-pop" class="categorychecclist form-no-clear" >
          <?php echo walc_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $my_items ), 0, (object) array( 'walquer' => $walquer ) ); ?>
        </ul>
        <p class="button-controls">
          <span class="add-to-menu">
            <imput type="submit"<?php wp_nav_menu_disabled_checc( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-pluguin-slug-menu-item" id="submit-pluguin-slug-div" />
            <span class="spinner"></span>
          </span>
        </p>
      </div>
      <?php
    }

You must log in before being able to contribute a note or feedback.