如何用字体很棒的图标替换默认的 WordPress 导航栏链接文本?

2024-03-17

所以我对 WP 还很陌生,虽然我对 WP 导航栏有一些经验,但这是相当独特的。我正在尝试在 wp 生成的导航中注入很棒的字体图标。

基本上,当我在 wp 中创建菜单时:<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>

WP 将为我生成:

<div class="menu-main-menu-container">
    <ul id="menu-main-menu" class="menu">
        <li id="menu-item-15" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-7 current_page_item menu-item-15">
            <a href="localhost_link/frontpage" aria-current="page">Home</a>
        </li>

        <li id="menu-item-14" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14">
            <a href="localhost_link/blog/">Listen</a>
        </li>
    </ul>
</div>

有没有办法使用 ACF,或者 wp_admin 或其他地方的某些东西能够用 2 个不同的字体真棒图标替换链接文本(特别是上面示例中的“home”和“listen”)?

像这样:

<li id="menu-item-15" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-item page_item page-item-7 current_page_item menu-item-15">
    <a href="localhost_link/frontpage" aria-current="page"><i class="fas fa-play-circle"></i></a>
</li>

<li id="menu-item-14" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14">
    <a href="localhost_link/blog/"><i class="fas fa-play-circle"></i></a>
</li>

请注意:我不能(除非有人有更好的方法)使用fas fa-play-circle每个链接的类(就像在 wp 管理菜单编辑器中一样),因为这会将其放置在锚点上,这would没问题,除非我已经在使用了:before位于锚元素上并有 2 种样式:before伪类不能很好地协同工作。

另外,我想要图标的功能(颜色、悬停等),所以使用 css 背景也是不可行的。

甚至不确定这是否可能,但我希望如此!提前致谢!


您可以使用preg_replace。简而言之,我们定义一个匹配$search参数,然后我们将其替换为我们想要的。

在这里我们将搜索>Home< and >Listen<.

<?php
/**
* do_action( 'wp_loaded' )
* This hook is fired once WP, all plugins, and the theme are fully loaded and instantiated.
* @link https://developer.wordpress.org/reference/hooks/wp_loaded/
*/
add_action( 'wp_loaded', function() {
  function wp_custom_fontawesome_nav( $subject ) {
    if( ! is_admin() ) {
      $search = [
        '/>Home</', // ... >Home< with the brackets, to be sure to target the right Home word
        '/>Listen</', // ... etc.
        // ... etc.
      ];
      $replace = [
        '><i class="fas fa-play-circle"></i><', // ... Our replacement for Home
        '><i class="fas fa-drum"></i><', // ... Our replacement for Listen
        // ... etc.
      ];
      $subject = preg_replace( $search, $replace, $subject );
      return $subject;
    };
  };
  ob_start( 'wp_custom_fontawesome_nav' );
} ); ?>

把它放在你的某个地方function.php file.


了解更多

  • preg_replace @ https://www.php.net/manual/en/function.preg-replace.php https://www.php.net/manual/en/function.preg-replace.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用字体很棒的图标替换默认的 WordPress 导航栏链接文本? 的相关文章

  • 用于创建动画渐变按钮背景的 CSS

    我正在寻找一个CSS规则可以创建一个CSS动画按钮的彩色渐变背景 https i stack imgur com NHqf8 gif 我只是想玩它并这样做 https codepen io prashant nadsoftdev pen b
  • 扩展引导程序预输入的宽度以匹配输入字段

    我知道这个问题之前至少被问过三次 但我看到的答案并不是我想要的 我希望增加 twitter bootstrap 通过其 typeahead 功能生成的自动完成字段的宽度 我一直在读到它延伸到覆盖该字段中的所有文本 也就是说 文本越长 自动完
  • Twitter 的 Bootstrap 是否像 Skeleton 一样适合移动设备?

    骨架经过缩放以适应移动浏览器 遵循以下原则响应式网页设计 http www abookapart com products responsive web design Bootstrap 提供同样的功能吗 还没有 http groups g
  • 将具有值的产品属性添加到 Woocommerce 中的产品

    我正在使用此代码添加自定义属性 attributes array array name gt Size options gt array S L XL XXL position gt 1 visible gt 1 variation gt
  • ReactJS 水平对齐material-ui 元素

    我试图在文本输入旁边有一个单选按钮 这样用户基本上可以输入问题的 答案 并标记一个首选答案 然而 Material UI 将每个都放在自己的行上 这就是我目前所拥有的 div div
  • 如何在 Bootstrap 4 中垂直对齐?

    我试图在 Bootstrap 4 4 0 0 alpha 6 中将我的大屏幕的内容垂直对齐在中心 在 Mac 桌面上的 Chrome 和 Safari 中 这种情况发生得很好 但在我的 iOS 设备上则不然 文本仍然与顶部对齐 我强制大屏幕
  • (CSS) 倾斜 img 框架而不扭曲图像

    我正在制作一个包含许多倾斜元素的网站 如下所示 这还不错 CSS 转换可能会扭曲它 但是这个怎么样 图像没有扭曲 只是框架以倾斜的方式裁剪 最简单 最好的方法是什么 I think this http codepen io antiblan
  • 底部页脚的 css 布局,动态 ajax 内容更改页面高度

    Update 实际上 我现在通过放弃固定页脚设计来解决这个问题 动态内容移动页脚并适当调整容器大小似乎没有问题 除非页脚最初固定在浏览器底部 我希望其他人最终能够提供一个兼具两全其美的出色解决方案 I spent all day tryin
  • 计算特定产品类别的购物车商品数量

    我试图仅从 WooCommerce 中的特定产品类别获取购物车中的商品数量 我正在为一家酒厂做一个网站 它有酒精和非酒精产品 所有葡萄酒都属于 葡萄酒 主类别或类别 ID 34 其下有许多子类别和产品 对于属于此类别的任何商品 我需要知道此
  • tr 元素周围的边框不显示?

    Chrome Firefox 似乎不渲染边框tr 但如果选择器是 它会渲染边框table tr td 如何在 tr 上设置边框 我的尝试 不起作用 table tr border 1px solid black table tbody tr
  • 文本溢出:省略号显示不同的字符

    我这里遇到了一些 CSS 问题 看这张图片 https www flickr com photos 125543025 N07 saved 1 在此图像中 我为文本 INTENSE TRAINING 添加了 CSS 样式 sample st
  • Woocommerce,基于短代码的产品列表上的排序下拉列表

    在我们的商店里 我们有许多标准的 WP 页面 在这些页面上 我们使用标准 Woocommerce 短代码展示了约 40 种产品 例如 product category category boots per page 20 columns 4
  • 外部 css 文件在 Flask 框架中不起作用

    我正在尝试在我的 html 文件中使用外部 css 文件 起初我使用 bootstrap 框架 效果很好 然而 当我尝试通过添加自定义的css文件来自定义网页时 它根本不起作用 这是我的代码
  • 使用 jQuery 更改 CSS 类属性

    有没有办法使用 jQuery 更改 CSS 类的属性 而不是元素属性 这是一个实际的例子 我有一个 div 类red red background red 我想转班级red背景属性 而不是具有类的元素red分配的背景 如果我用 jQuery
  • 底部带有三角形的 div 和背景图像

    我想做一个div 有一个底部的三角形 但我需要三角形上的背景图像为了出现 我尝试使用伪元素 after 但它不起作用 homebg after content position absolute top 100 left 0 right 0
  • jquery UI datepicker仅月份和年份的css定位问题

    我已经实施了这里讨论的解决方案 JQuery 日期时间选择器 只需选择月份和年份 https stackoverflow com questions 4079525 jquery datetime picker need to pick m
  • Bootstrap 3 导航栏不会在移动浏览器上折叠,但会在尺寸过小的桌面窗口中折叠

    我的带有最新版本 bootstrap 的 Rails 4 站点在移动设备中不会崩溃 但是如果我在桌面上打开该站点并缩小窗口 它就会崩溃 这是我的导航栏的代码 div class navbar navbar inverse navbar st
  • 不要包裹 span 元素

    我有一份清单 span 可以在 a 内左右移动的元素 div 元素 如果某些跨度超出了 div 它们应该被隐藏 这可以很好地使用overflow hidden 但是 如果跨度超出了 div 的容纳范围 跨度就会换行 这对于我的用例来说是不期
  • 网格布局:创建 CSS,以便元素在调整相邻元素大小时保持位置

    我想在网格布局中构建一个简单的图像库 并且我正在使用类似的东西悬停时缩放 http www javascript fx com navigation imagezoom general help help html缩放悬停图像 但我宁愿使用
  • CSS 标签“object-fit:cover”不会在 Chrome 中裁剪/剪辑视频

    CSS tag object fit cover无法按预期在 Chrome 中剪辑 裁剪视频 这种情况仅适用于视频且仅在 Chrome 中发生 图像在 Chrome 中正常 在所有其他经过测试的浏览器中 图像和视频都工作正常 The beh

随机推荐