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

Myzwer

因此,我对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或其他地方使用ACF来用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_admin菜单编辑器中),因为那样会将其放在锚点上可以了,除非我已经在使用:before了锚元素和2种样式的:before元素不能很好地配合使用。

另外,我想要图标的功能(颜色,悬停等),因此也不能使用css背景。

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

浮生的

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

在这里,我们将搜索>Home<>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文件中的某个位置


学到更多

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章