以编程方式将菜单替换为小部件或自定义模板文件

时间:2016-08-29 作者:Kevin S

我正在使用子主题进行自定义,现在我想替换top menu 使用自定义小部件或file that contains custom content, 但是主题不支持挂钩、过滤器和操作,所以如何在不修改核心的情况下替换它header.php?

下面是当前如何调用顶部菜单:

<?php $main_top = array(\'theme_location\' => \'Top_Menu\', \'container\' => \'\', \'menu_class\' => \'sf-top-menu\', \'menu_id\' => \'menu-top\', \'fallback_cb\' => false);?>

<?php if(!of_get_option(\'disable_top_menu\')==1){?>

<div class="mainmenu"> 
    <?php wp_nav_menu($main_top);?>
    <div class="clearfix"></div>
</div>
    <?php }?>

1 个回复
最合适的回答,由SO网友:cjbj 整理而成

您可以修改传递给的参数wp_nav_menu 使用名为wp_nav_menu_args. 您可以使用此筛选器添加walker class, 这将改变wp_nav_menu.

这种方法有点粗糙,因为walker类仍然会“遍历”所有菜单项,但您可以控制它们,所以决定不输出任何项。Here\'s a nice tutorial 在walker课堂上。

在walker类中,可以包含自定义内容。请注意,您需要添加html, 像PHP 将不再计算代码。