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

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

Обходным решением было использование функции 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 __^
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]