如何使用qTranslateX插件

时间:2018-09-22 09:35:20

标签: php regex wordpress preg-replace qtranslate-x

我正在将qTranslateX插件用于我的多语言Wordpress网站。我设置了2种语言:en和fr。 我想知道如何仅以编程方式更新特定语言的帖子名称?我到处搜索,但没有找到解决方案。

一种解决方法是使用preg_replace函数,它看起来像这样(假设帖子名称是:我的[en]英语[fr]法语[:]帖子名称)

$start = '\[en\]';
$end  = '\[';
$original_name = 'My [en]English[fr]French[:] post name';
$replace_with = 'Awsome english new';
$new_post_name = preg_replace('#('.$start.')(.*)('.$end.')#si', '$1'.$replace_with.'$3', $original_name ,1);
echo $new_post_name ;

这将输出以下不正确的字符串,因为法语文本已删除,因此preg_replace并不限制第一次出现:

  

我的[en]令人敬畏的英文新[:]帖子名称

预期输出为:

  

我的[en]令人敬畏的英文新词[fr]法语[:]帖子名称

我有点卡在这里...

1 个答案:

答案 0 :(得分:2)

使要替换的部分不贪心:

$new_post_name = preg_replace('#('.$start.')(.*?)('.$end.')#si', '$1'.$replace_with.'$3', $original_name ,1);
//                                      here __^