[英]Wordpress register custom menu
我的自定义网站的标题中有一个菜单,我想在Wordpress functions.php
文件中注册此菜单,并在header.php
文件中使用它。
自定义菜单html代码:
<div id="top-nav-right-items" class="pull-right top-links"> <ul class="list-inline"> <li><a href="">فروشگاه</a></li> <li> <a href="" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-external-link-square"></i> <span class="hidden-xs hidden-sm hidden-md">حساب کاربری</span> <span class="caret"></span></a> <ul class="dropdown-menu dropdown-menu-right"> <li><a target="_blank" title="" href="">آیتم 1</a></li> <li><a target="_blank" title="" href="">آیتم 2</a></li> <li><a target="_blank" title="" href="">آیتم 3</a></li> </ul> </li> <li><a href="">سبد خرید</a></li> <li><a href="">تسویه حساب</a></li> <li><a href="">درباره ما</a></li> <li><a href="">تماس با ما</a></li> </ul> </div> <!-- #top-nav-right-items -->
我知道如何在functions.php
文件中注册此菜单,但是我不知道如何在我的wordpress网站中显示自定义菜单。
<?php
function register_menu() {
register_nav_menu('top-menu',__( 'TOP MENU' ));
}
add_action( 'init', 'register_menu' );
?>
您可以使用wp_nav_menu()
函数在模板文件中呈现菜单。
以最简单的形式可以像这样调用:
wp_nav_menu(array (
'theme_location' => 'top-menu',
));
对于基本自定义,您可以更改阵列中列出的默认参数 。 但是,这是非常有限的,因为您可以通过简单的更改仅更改一些内容,例如container_class
和menu_class
。
虽然有walker
参数,它接受Walker
实例。 默认情况下,它设置为Walker_Nav_Menu
,并且这是有效处理菜单呈现的类。 为了进行最深入的定制,您可以扩展此类并将新类别设置为walker
参数。 这使您可以完全控制菜单。
如果您不想深入了解,仍然可以使用一些过滤器来更改菜单的呈现方式。 您也可以在Walker_Nav_Menu
的源代码中发现这些过滤器。 这些过滤器是nav_menu_submenu_css_class
, nav_menu_item_args
, nav_menu_css_class
, nav_menu_item_id
, nav_menu_link_attributes
, nav_menu_item_title
和walker_nav_menu_start_el
。
因此,例如,要将新的CSS类添加到子菜单中,可以编写如下代码:
add_filter('nav_menu_submenu_css_class', function ($classes, $args, $depth) {
$classes[] = 'dropdown-menu';
$classes[] = 'dropdown-menu-right';
return $classes;
}, 10, 3);
您可以使用“ menu_class”或“ container_class”参数。
wp_nav_menu(array (
'theme_location' => 'top-menu',
'menu_class' => 'class_name',
));
您可以检查wordpress Codex中该功能的所有可用参数。
编辑:menu_class参数将应用于ul 。
function register_my_menus(){
register_nav_menus(
array(
'primary-menu'=>__('Primary Menu'),
'footer-menu'=>__('Footer Menu'),
'additional-menu'=>__('Additional Menu')
)
);
}
add_action('init','register_my_menus');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.