Wordpress注册自定义菜单

时间:2018-01-06 19:53:01

标签: php html css wordpress

我的自定义网站标题中有一个菜单,我想在Wordpress null文件中注册此菜单,并在public async Task<IActionResult> Details(int? id, int? customerId) 文件中使用它。

自定义菜单html代码:

functions.php

我知道如何在header.php文件中注册此菜单,但我不知道如何在我的wordpress网站中显示自定义菜单。

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

3 个答案:

答案 0 :(得分:1)

您可以使用wp_nav_menu()功能在模板文件中渲染菜单。

以最简单的形式,它可以像这样调用:

wp_nav_menu(array (
    'theme_location' => 'top-menu',
));

对于基本自定义,您可以更改阵列中列出的default parameters。但是,这是非常有限的,因为您只需更改container_classmenu_class等几项内容即可进行简单更改。
虽然有walker参数,但它接受Walker个实例。默认情况下,它设置为Walker_Nav_Menu,这是有效处理菜单呈现的类。对于最深入的自定义,您可以扩展此类并将新类设置为walker参数。这使您可以完全控制菜单。

如果您不想深入了解,仍然有一些过滤器可用于更改菜单的呈现方式。您也可以在Walker_Nav_Menu的源代码中找到这些过滤器。 这些过滤条件为nav_menu_submenu_css_classnav_menu_item_argsnav_menu_css_classnav_menu_item_idnav_menu_link_attributesnav_menu_item_titlewalker_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);

答案 1 :(得分:1)

您可以使用“menu_class”或“container_class”参数。

wp_nav_menu(array (
    'theme_location' => 'top-menu',
    'menu_class' => 'class_name',
));

您可以查看wordpress codex此功能的所有可用参数。

编辑:menu_class参数将应用于 ul

答案 2 :(得分:0)

sys/syscall.h