如何在主题中修改手机导航菜单文本

时间:2016-12-03 作者:nickpish

我使用的是基于theme Nectar的儿童主题Salient WordPress主题,我在尝试修改文本时遇到了一个令人沮丧的问题,该文本显示为折叠(移动)状态下的粘性导航子菜单。在深入研究父主题文件后,我发现负责子菜单的php代码位于“nectar vc addons”子文件夹中,如下所示:

echo \'<a href="#" class="mobile-menu-link"><i class="salient-page-submenu-icon"></i>\'.__(\'Menu\',NECTAR_THEME_NAME).\'</a><ul  style="background-color:\'.$bg_color.\'; color: \'.$link_color.\';" >\'.do_shortcode($content).\'</ul>\';
这部分导致为菜单生成以下标记:

<a href="#" class="mobile-menu-link">
    <i class="salient-page-submenu-icon"></i>
    "Menu"
</a>
我所要做的就是将这个“菜单”文本更改为不同的内容,而且似乎没有主题选项可以这样做;我希望避免更改主题文件中的PHP,以便在主题版本升级时不会覆盖它。

我意识到我可以使用一些jQuery技巧来更改字符串,但我想知道是否有什么方法可以更改functions.php 以我的孩子主题或其他方式归档?我也对CSS方法持开放态度,可能是使用psuedo元素,但我想不出任何方法可以改变锚元素中的文本并保留图标。非常感谢您的帮助!

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

您可以利用gettext 筛选以更改文本。将此代码添加到子主题functions.php 或插件:

add_filter(\'gettext\', \'wpse248225_change_text\', 20, 3 );
function wpse248225_change_text( $translated_text, $untranslated_text, $domain ) {
    if ( NECTAR_THEME_NAME !== $domain ) {
        return $translated_text;        
    }

    // Make the changes to the text
    switch( $untranslated_text ) {
            // Change \'Menu\' text
            case \'Menu\':
                $translated_text = __( \'something different\', \'text_domain\' );
            break;

            // add more items
     }

    return $translated_text;        
}

相关推荐

为什么我的主题的css在另一个网站上不起作用

我在Neve theme的基础上开发我的on theme。首先,我对脚本有问题,因为它不起作用,但我不得不从页脚更改它们的位置。php到标题。php的一切都很好。新的一些脚本无法工作,因为css根本没有加载。我尝试了5种不同的方法,但都失败了。标题中的。php我只是给他们<style> </style></我在函数中使用了寄存器样式。php,标题。php和页脚。php function my_theme_enqueue_styles() { &#x