【问题标题】:Add div's into wordpress navigation将 div 添加到 wordpress 导航中
【发布时间】:2021-10-12 06:51:14
【问题描述】:

我正在使用下划线构建自定义 wordpress 主题,并希望在导航中添加两个 div。我知道我必须使用自定义 Walker,但我不确切知道如何以及我能找到的只是如何自定义列表项本身。但我所需要的只是将 div 放在生成的列表之上。

这是我现在得到的:

<div class="menu-all-pages-container">
   <ul id="primary-menu" class="menu">
      <li>Menu item 1</li>
      <li>Menu item 1</li>
      ...etc
   </ul>
</div>

我想拥有什么:

<div class="menu-all-pages-container">

<div id="mydiv"></div>
<div class="button"></div>

   <ul id="primary-menu" class="menu">
      <li>Menu item 1</li>
      <li>Menu item 1</li>
      ...etc
   </ul>
</div>

正如我所说,我认为我需要一个自定义 Walker 并自定义 start_el() 函数?但在那之后我迷路了..

提前致谢:)

【问题讨论】:

  • 您能否详细说明一下何时会在重定向或某种角色约束期间添加 div?

标签: php wordpress wordpress-theming wp-nav-walker


【解决方案1】:

您可以使用wp_nav_menu_items 过滤器。试试这个:

add_filter('wp_nav_menu','add_custom_nav_elements', 10, 1);
function add_custom_nav_elements( $nav ) {

    $elements = '<div id="mydiv"></div><div class="button"></div>';
    return $elements . $nav;
}

如果您只为primary 菜单寻找添加元素,试试这个:

add_filter('wp_nav_menu','add_custom_nav_elements', 10, 2);
function add_custom_nav_elements( $nav, $args ) {

    $elements = '<div id="mydiv"></div><div class="button"></div>';

    if( $args->theme_location == 'primary' )
        $nav = $elements . $nav;

    return $nav;
}

然后在你想添加菜单的地方添加这个:

<div class="menu-all-pages-container">
     <?php wp_nav_menu(array('theme_location' => 'primary')); ?>
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    相关资源
    最近更新 更多