Wordpress Как я могу программно обновить название записи для определенного языка с помощью плагина qTranslateX

Я использую плагин qTranslateX для своего многоязычного сайта Wordpress. Я установил 2 языка: en & fr. Мне было интересно, как я могу обновлять название сообщения ТОЛЬКО для определенного языка? Я искал везде, и я не нашел решения.

Обходным решением было использование функции preg_replace, которая выглядит следующим образом (скажем, имя сообщения: My [en] English [fr]French[:] post name)

$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 ответ

Решение

Сделайте заменяемую деталь не жадной:

$new_post_name = preg_replace('#('.$start.')(.*?)('.$end.')#si', '$1'.$replace_with.'$3', $original_name ,1);
//                                      here __^
Другие вопросы по тегам