我正在将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]法语[:]帖子名称
我有点卡在这里...
答案 0 :(得分:2)
使要替换的部分不贪心:
$new_post_name = preg_replace('#('.$start.')(.*?)('.$end.')#si', '$1'.$replace_with.'$3', $original_name ,1);
// here __^