Wordpress 如何使用 qTranslateX 插件以编程方式更新某种语言的 post 名称

Wordpress How can I programmatically update post name for a certain language using qTranslateX Plugin

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

解决方法是使用 preg_replace 函数,它看起来像这样(假设 post 名称是:My [en]English[fr]French[:] post姓名)

$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', ''.$replace_with.'', $original_name ,1);
echo $new_post_name ;

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

My [en]Awsome english new[:] post name

预期输出为:

My [en]Awsome english new[fr]French[:] post name

我有点卡在这里...

让被替换的部分非贪心:

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