Wordpress将短代码插入菜单项

时间:2018-02-06 16:54:33

标签: php css wordpress svg shortcode

我有这样的问题。在 functions.php 中,我有这样的代码:

function Svg_Path($attr) {
    $a = shortcode_atts(array(
        'path' => 'Some text'
    ), $attr);
    $svg = '<svg class="menu-item-icon"><use xlink:href=' . get_template_directory_uri(). '/img/svg/sprite.svg' . $a["path"] . '></use></svg>';
    return $svg;
}
add_shortcode( 'SvgPath', 'Svg_Path' );

通常,我可以在pageBuilder中使用

<div>[SvgPath path='#logo__skype']</div>

结果将是显示的Skype图标。但是,当我尝试将此短代码插入Appearence&gt;菜单&gt;链接文本时,我将短代码作为纯文本

Where do I try to input my shortcode

所以你可以帮我解决这个问题,所以我可以在菜单项中从svg精灵那里收到skype logo

2 个答案:

答案 0 :(得分:0)

您是否可以使用更新的FontAwesome来创建它并将其添加到菜单中?

https://fontawesome.com/icons/skype?style=brands可能会帮助你。

答案 1 :(得分:0)

尝试以下代码。代码将解析您的短代码并向您显示短代码内容。它只适用于前端。

add_filter( 'the_title', function( $title, $item_id ) {
    if ( 'nav_menu_item' === get_post_type( $item_id ) ) {
        return do_shortcode( $title );
    }
    return $title;
}, 10, 2 );