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 __^