php - 通过 wp_nav_menu_items 添加类到 Wordpress 菜单

标签 php css wordpress navigation

我希望在每个 ul 的最后 li 中添加一个类。例如,如果我有:

<ul>
   <li></li>
   <li>
      <ul>
         <li></li>
         <li></li>
      </ul>
   </li>
</ul>

我想添加一个过滤器来做到这一点:

 <ul>
   <li></li>
   <li class="last">
      <ul>
         <li></li>
         <li class="last"></li>
      </ul>
   </li>
</ul>

关于如何使用 php 函数实现此目的的任何想法?我已经看到成功针对第一个 ul li 的例子,但不要再深入了!

如有任何帮助,我们将不胜感激。

干杯

最佳答案

将以下代码添加到您的 functions.php

function add_first_and_last($output) {
  $output = preg_replace('/class="menu-item/', 'class="first-menu-item menu-item', $output, 1);
  $output = substr_replace($output, 'class="last-menu-item menu-item', strripos($output, 'class="menu-item'), strlen('class="menu-item'));
  return $output;
}
add_filter('wp_nav_menu', 'add_first_and_last');

这会强制将额外的标记添加到相应元素的类列表中,而不是为一个标签添加多个 ID。

我认为应该有一个更优雅的解决方案。

关于php - 通过 wp_nav_menu_items 添加类到 Wordpress 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10535148/

相关文章:

CSS 规则,前所未见

javascript - 现代浏览器是否像图像一样支持 HTML 中的 base64 编码的 JS 或 CSS block ?

css - @page Css 样式不适用于 Mozilla firefox

css - 移动/小屏幕上的 Wordpress 侧边栏

jquery 仅在 Safari 中产生 margin 问题

javascript - tinyMCE 删除/禁用调整大小切换

php - 使用 htaccess 的 CakePHP 子域

php - 从 Windows 迁移到 Linux 服务器,现在出现 session 错误

php - 如何从 Fractal Transformer 结果中删除 'data' 属性?

php - SQL INSERT INTO 表结果重复