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

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

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

$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 не ограничивает первое вхождение:

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

Ожидаемый результат:

Мой [en] Awsome английский новый [fr] французский [:] название сообщения

Я застрял здесь...

1 Ответ

0 голосов
/ 22 сентября 2018

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

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