在这个主题上搜索了一段时间没有任何成功。我能找到的所有解决方案都涉及使用wp_nav_menu的Walker属性,我不认为这是正确的方法。我想创建一个具有以下结构的菜单:
属于类别的链接
等等......
我是否需要为每个菜单项手动运行循环以检索帖子?
答案 0 :(得分:4)
在你的functions.php中试试这个:
add_filter('wp_nav_menu_items', 'add_productions', 10, 2);
function add_productions($items, $args) {
$cat = '28'; // define category
$productions = array();
$productions = get_posts("cat=$cat");
if ($productions[0] != '') {
$items .= '<li><a href="#">Productions</a><ul class="sub-menu">';
foreach ( $productions as $production ) {
$permalink = get_permalink( $production->ID );
$items .= '<li><a href="'.$permalink.'">'.$production->post_title.'</a></li>';
}
$items .= '</ul>';
}
return $items;
}
答案 1 :(得分:4)
这个问题和答案对我非常有帮助,所以我想添加一个额外的解决方案,提供在现有核心菜单中的任何位置插入菜单的选项。
网络上的大多数示例都显示如何将项目添加到菜单的末尾,这有助于您在菜单的任何位置添加新菜单。
以下是在我的“主页”菜单后面放置新菜单的代码:
add_filter('wp_nav_menu_items', 'add_gallery', 10, 2);
function add_gallery($items, $args) {
$cat = '1'; // define category
$pattern = 'Home</a></li>';
$productions = array();
$productions = get_posts("cat=$cat");
$temp_items = '';
if ($productions[0] != '') {
$temp_items .= '<li><a href="#">Galleries</a><ul class="sub-menu">';
foreach ( $productions as $production ) {
$permalink = get_permalink( $production->ID );
$temp_items .= '<li><a href="'.$permalink.'">'.$production->post_title.'</a></li>';
}
$temp_items .= '</ul>';
}
$replacement = $pattern .$temp_items;
$temp_menu = str_replace($pattern, $replacement, $items);
return $temp_menu;
}
希望这有助于其他人...