我有一个使用新菜单系统的自定义菜单,但它没有以正确的顺序返回。我不知道它的顺序是什么——不是按字母顺序,也不是按日期,也不是按我能看到的任何模式。
“赞助商”、“档案”和“fewtchafests”页面应显示为最后3项,在数字序列之后,而不是之前。如果第一个项目不是一个数字,我可能会认为它是在最后呈现所有数字,但第一个项目(“8333”)有点妨碍了这个想法。
下面是正确拖放菜单顺序的截图,显示错误顺序的网站截图,以及用于调用菜单的代码。
<!-- BEGIN ADVENT CALENDAR -->
<nav role="navigation">
<?php
wp_nav_menu( array(
\'theme_location\' => \'advent-calendar\',
\'menu\' => \'advent-calendar\',
\'menu_class\' => \'component-calendar\',
\'container_id\' => \'calendar\',
\'container_class\' => \'advent\',
\'orderby\' => \'menu_order\',
\'walker\'=> new Salamander_Advent_Walker()
)
);
?>
</nav>
<!-- END ADVENT CALENDAR -->
编辑:我的自定义walker肯定有问题(下面的代码)-如果我注释掉对自定义walker函数的调用,它将按正确的顺序生成: class Salamander_Advent_Walker extends Walker_page {
function start_el(&$output, $item, $depth, $args) {
private $color_idx = 1;
$advent_thumbnail = get_post_meta($item->object_id, \'advent-thumb\', true);
$advent_slug = get_post_meta($item->object_id, \'advent-slug\', true);
$advent_oneliner = get_post_meta($item->object_id, \'advent-oneliner\', true);
$advent_color = get_post_meta($item->object_id, \'advent-color\', true);
$advent_small_title = get_post_meta($item->object_id, \'advent-title\', true);
$advent_title = ( !empty($advent_small_title) ? $advent_small_title : $advent_slug);
$output .= $indent . \'
<li class="color\'.$this->color_idx.\' active">
<a href="#day\'. $advent_slug .\'">
<span class="day">
<strong>\'. $advent_slug .\'</strong>
<span> </span>
</span>
<span class="content">
<small class="\'. $advent_color .\'">\'. $advent_title .\'</small>
<img src="\'. $advent_thumbnail .\'" width="126" height="91" alt="advent" />
<strong>\'. $advent_oneliner .\'</strong>
</span>
</a>
\';
$this->color_idx++;
if ($this->color_idx > 4) {
$this->color_idx = 1;
}
} // ends function
} // ends class