我正在使用MyMail插件管理我的新闻稿
我还使用WPML管理翻译,这两个插件之间不兼容
订阅表单通过MyMail短代码和wordpress文本小部件放置在页脚区域。
我想将字段标签翻译成活动语言:所以我想为“widget\\u text”编写一个过滤器,搜索“label name”并preg\\u replace()其输出。。。但我没有找到实现它的方法。
查看管理表单的php类,我可以看到输出表单的函数将最终代码存储为:
return apply_filters(\'mymail_form\', $html, $formid, $form);
所以我想我需要在$html变量中使用“搜索并替换”。
有什么想法吗?非常感谢!
SO网友:Capiedge
如果有人在寻找解决方案,以下是一种实现方法(可能不是更好的方法):
add_filter(\'widget_text\', \'filtering_form_labels\');
function filtering_form_labels($html) {
if ( ICL_LANGUAGE_CODE==\'en\' ) {/*ICL_LANGUAGE_CODE used in WPML to know the active language*/
$esp = array(\'Nombre\', \'Apellidos\', \'Suscribirse\'); /*Array with words to be replaced*/
$eng = array(\'First Name\', \'Last Name\', \'Subscribe\'); /*Array with new words*/
ob_start();
$html = str_replace($esp, $eng, $html);
ob_end_clean();
}
return $html;
}