Заменить текстовую строку на отдельных страницах
Мне нужно заменить несколько текстовых строк только для двух конкретных страниц на сайте WordPress. Это не должно затрагивать эти строки на других страницах. Я предпочитаю сделать это путем добавления кода в functions.php.
Думаю, что использование части этого кода будет первым шагом, нужна помощь с остальным https://wordpress.stackexchange.com/a/278357

Я не могу оставить комментарий, поэтому отвечу и немного доработаю ответ Bhagyashree, который как раз подходит под ваш вопрос. Разница лишь в том, что вам, возможно, нужно знать, как включить 2 страницы вместо дублирования функции. А также как передать массив строк для замены.
function replace_some_text( $content ) {
// Обратите внимание на || - мы проверяем, является ли это страницей 1 ИЛИ страницей 2. Также изменили на is_single.
if( is_single( 2020 ) || is_single( 2021 ) {
$text_strings_to_replace = array( 'первая_строка', 'вторая_строка', 'третья_строка_для_замены' );
$content = str_replace( $text_strings_to_replace, 'новый_текст', $content );
}
return $content;
}
add_filter('the_content', 'replace_some_text');
Небольшое пояснение. По сути, мы подключаемся к фильтру WordPress [add_filter][1]
, который позволяет фильтровать весь контент на странице.
Мы фильтруем $content внутри нашей функции, в данном случае используя PHP-функцию [str_replace][1]
для поиска в контенте нашего массива строк и замены их на 'новый_текст'.

Предложенные выше решения, к сожалению, не сработали в моем случае, по-видимому, потому что в такой ситуации плагин WooCommerce переопределяет функцию в файле functions.php. Таким образом, для меня решением стало использование плагина Say What.

Пример замены всех вхождений строки в WordPress. Добавьте следующий код в файл functions.php вашей темы:
function replace_text($text) {
$text = str_replace('look-for-this-string', 'replace-with-this-string', $text);
$text = str_replace('look-for-that-string', 'replace-with-that-string', $text);
return $text;
}
add_filter('the_content', 'replace_text');
Подробнее на http://php.net/manual/en/function.str-replace.php

Я столкнулся с той же проблемой в течение последних 18 часов. Я перепробовал множество вариантов кода, и наконец, это сработало. Поместите данный код в раздел Внешний вид >> Редактор тем >> файл functions.php
:
function replace_text( $text ) {
if( is_page( 1709 ) ) {
$text = str_replace('old_text', 'new_text', $text);
$text = str_replace('old_text', 'new_text', $text);
}
return $text;
}
add_filter('the_content', 'replace_text');
old_text
— это текст, который вы хотите заменить, аnew_text
— текст, на который нужно заменить.- Чтобы определить ID страницы, отредактируйте её — ID будет указан в URL.
