首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为tgetWordPress菜单项使用按钮元素?

如何为tgetWordPress菜单项使用按钮元素?
EN

WordPress Development用户
提问于 2018-08-20 12:04:55
回答 1查看 819关注 0票数 1

如何为两个菜单导航栏混合HTML元素类型?

我正在构建一个WordPress主题与引导4。

WordPress的菜单内容应该来自菜单选项,输出到一个引导带4导航栏。我在用这个引导带4-特定的wp_nav_menu肚脐步行者 ..。

代码语言:javascript
复制
require_once get_template_directory() . '/inc/bs4navwalker.php';

..。将nav文本链接的主菜单输出为无序列表,就像上帝意欲.

代码语言:javascript
复制
      'primary', // name of wordpress menu
       'theme_location'  => 'primary',
       'depth'           => 2,
       // :
       // 'container'       => 'false',
       'container_id'    => 'bs4navbar',
       'container_class' => 'collapse navbar-collapse',
       // :
       'menu_id'         => false,
       'menu_class'      => 'navbar-nav ml-auto',
       // other:
       'fallback_cb'     => 'bs4navwalker::fallback',
       'walker'          => new bs4navwalker()
     ]);
     ?>
     Button
     Sign up
 效果很好。输出是..。
     
       
              Sandbox     
     
       
     
     
       
         Home
         Trends
         Custom
         Strategy
       
     
     Button
     Sign up
 但是,您将看到手动插入两个 元素的部分。我希望从WordPress菜单中动态生成这些代码,而不是硬编码,就像primary菜单一样。我做了第二个WordPress菜单,buttons。这就是我崩溃的地方..。我可以为buttons插入第二个D11调用,就在第一个调用primary之后.  'buttons', // name of wordpress menu
   'theme_location'  => 'buttons',
   'depth'           => 2,
   // :
   // 'container'       => 'false',
   'container_id'    => 'bs4navbar',
   'container_class' => 'collapse navbar-collapse',
   // :
   'menu_id'         => false,
   'menu_class'      => 'navbar-nav ml-auto',
   // other:
   'fallback_cb'     => 'bs4navwalker::fallback',
   'walker'          => new bs4navwalker()
 ]);
 ?>..。菜单项将被插入到正确的位置。问题是,这些项目是s在一个,就像primary菜单.我假设bs4navwalker被设置为将所有wp_nav_menu项输出为列表项,或者这可能是WordPress的操作。如何确保第二个菜单( buttons )中的项使用不同的结构获得输出,而不是D21元素?
EN

回答 1

WordPress Development用户

发布于 2018-08-20 13:03:09

以下是一个解决方案,尽管使用额外的PHP处理..。

代码语言:javascript
复制
  false,
     'theme_location'    => 'buttons',
     'items_wrap'        => '%3$s',
     'menu_class'        => false,
     'menu_id'           => false,
     'container'         => 'false',
     'container_class'   => false,
     'container_id'      => false,
     'before'            => '',
     'after'             => ''
 );

 $menu = wp_nav_menu($options);

 $output = strip_tags($menu, '');

 echo preg_replace('/btn-primary/', 'btn-outline-primary', $output, 1);

 ?>这包括:去除不设置任何容器将每一项包装在标记中抑制回波剥去所有的标签( ) (除外)在最后一部分中,将btn-primary类的第一个实例替换为btn-outline-primary,以便保留两种颜色的按钮。这是输出..。Button
Learn More

I更愿意使用WordPress自己的功能来设置菜单项类,而不是在这里对它们进行硬编码。

<#>Is有一种方法可以让这些类出现在nav项中,而不是使用 preg_replace**,还是这个方法不支持它?**

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/311941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档