На примере замены заголовка для статьи на WordPress. Мы будем искать в нём специальное значение и при нахождении менять заголовок.
Такая задача может возникнуть, если мы парсим какие-то данные, а данных нет. В этом случае мы можем пометить это в самом заголовке, чтобы потом видеть что запись не полная. Заголовки у всех статей разные, а потому важно оставить существующий и добавить к нему пометку.
Для исключения дублей фразы будем каждый раз пересоздавать заголовок, цепляясь по ключевому параметру. В данном случае это будет двоеточие.
// Сохраняем реальный заголовок у статьи
$title = get_the_title();
// Находим двоеточие и сохраняем данные до него в переменную
$needle = strstr($title, ': ', true);
$empty = 'Увы, данные не найдены. Попробуйте позже. ';
// Если двоеточия нет, то добавим его и надпись из переменной empty
if (!$needle) {
$new_title = $title .': ' .$empty;
// Если двоеточие найдено, вставляем содержимое до него и
// снова добавляем содержимое переменной empty
} else {
$new_title = $needle .': ' .$empty;
}
// Обновление заголовка
wp_update_post(array($post->ID, 'post_title' => $new_title));
$title = get_the_title();
// Находим двоеточие и сохраняем данные до него в переменную
$needle = strstr($title, ': ', true);
$empty = 'Увы, данные не найдены. Попробуйте позже. ';
// Если двоеточия нет, то добавим его и надпись из переменной empty
if (!$needle) {
$new_title = $title .': ' .$empty;
// Если двоеточие найдено, вставляем содержимое до него и
// снова добавляем содержимое переменной empty
} else {
$new_title = $needle .': ' .$empty;
}
// Обновление заголовка
wp_update_post(array($post->ID, 'post_title' => $new_title));