2017-06-30 1 views
0

Ich habe ein Sidebar-Menü, das durch das normale WordPress-Menü (Aussehen> Menüs) ausgefüllt wird.WordPress Position von benutzerdefinierten wp_nav_menu_items ändern

Ich habe auch ein benutzerdefiniertes Menü mit 'wp_nav_menu_items' erstellt, das am Ende des WP-Menü hinzugefügt wird. Mein Problem ist, dass ich die Reihenfolge dieses benutzerdefinierten Menüs ändern kann. Dies ist, wie es zur Zeit aussieht:

  • Äpfel
  • Bananen
  • Birnen
  • Orangen
  • Ananasse (custom-Menü wp_nav_menu_items)

Was Ich mag würde erreichen:

  • Äpfel
  • Bananen
  • Ananasse (custom-Menü wp_nav_menu_items)
  • Birnen
  • Orangen

Dies ist, wie mein Code zur Zeit aussieht:

class My_Walker_Nav_Menu extends Walker_Nav_Menu { 
    function start_lvl(&$output, $depth = 0, $args = Array()) { 
     $indent = str_repeat("\t", $depth); 
     $output .= "\n$indent<ul class=\"childnav\">\n"; 
    } 
    function end_lvl(&$output, $depth = 0, $args = Array()) { 
     $indent = str_repeat("\t", $depth); 
     $output .= "$indent</ul>\n"; 
    } 
} 

add_filter('wp_nav_menu_items', 'custom_pineapple_navigation', 10, 2); 
function custom_buy_navigation ($items, $args) { 
    $your_query = new WP_Query('pagename=pineapples'); 
    while ($your_query->have_posts()) : $your_query->the_post(); 
     $items .= '<li class="haschild"><a href="#">Pineapple</a>     
      <ul class="childnav"> 
       <li class="breadcrumb"><a href="#">Back to main menu</a></li> 
       <li class="label"><a href="#">Pineapple</a></li><span class="scrollMenu scrollbar-outer">'; 
        $customPosts = get_field('my_pineapple_custom_field'); 
        if($customPosts): 
         foreach($customPosts as $customPost): 
          setup_postdata($customPost); 
          $items .= '<li><a href="'.get_permalink($customPost->ID).'">'.get_the_title($customPost->ID).'</a></li>';             
         endforeach; 
         wp_reset_postdata(); 
        endif; 
       $items .= '</span></ul></li>'; 
    endwhile; 
    wp_reset_postdata(); 

    // More Queries like above 

    return $items; 
} 

Gibt es eine Möglichkeit zu erreiche, wonach ich suche?

+0

Hat Ihr Menü ein wp_query? Wenn ja, können Sie einfach die Sortierung auf "Titel" ändern. Es wird dann alphabetisch sortiert. – Dorvalla

+0

Leider versuche ich nicht alphabetisch zu sortieren ... es ist einfach so passiert im Beispiel hah. Aber das wäre eine gute Idee gewesen! – user1788364

Antwort

1

, wenn ich Sie richtig machen, dann müssen Sie Ihre ändern, wenn Aussage wie diese

$i = 0; 
if($customPosts): 
foreach($customPosts as $customPost): 
if($i == 2) { 
    echo '<a href="#">Pineapple</a>'; 
} else { 
    setup_postdata($customPost); 
    $items .= '<li><a href="'.get_permalink($customPost->ID).'">'.get_the_title($customPost->ID).'</a></li>';             
endforeach; } 
$i++; 
Verwandte Themen