我使用的是基于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元素,但我想不出任何方法可以改变锚元素中的文本并保留图标。非常感谢您的帮助!
最合适的回答,由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;
}