0

我有一个侧边栏菜单,它通过普通的 WordPress 菜单(外观 > 菜单)填充。

我还有一个使用“wp_nav_menu_items”创建的自定义菜单,该菜单被添加到 WP 菜单的底部。我的问题是我需要能够更改该自定义菜单的顺序。这是它目前的样子:

  • 苹果
  • 香蕉
  • 橘子
  • 菠萝(使用 wp_nav_menu_items 的自定义菜单)

我想达到的目标:

  • 苹果
  • 香蕉
  • 菠萝(使用 wp_nav_menu_items 的自定义菜单)
  • 橘子

这是我的代码当前的样子:

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;
}

有没有办法实现我所追求的?

4

1 回答 1

1

如果我说对了,那么您需要像这样更改您的 if 语句

  $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++;
于 2017-06-30T12:53:17.037 回答