Массовая замена текста в записях WordPress
Раздел(ы): MySQL, WordPress, Вебмастеру
Просмотры: 4774
Комментарии: 0
Когда ваш сайт (блог) перевалил за сотню страниц, замена однотипных данных в записях может вызвать большую проблему. Я долгое время на своем блоге использовал теги BBCode для оформления статей. С ними написание происходило значительно быстрее. Но когда я решил отказаться от их использования и привести все записи к чистому HTML коду, то понял, что редактирование 300 страниц сайта займет много времени.
Для всех сайтов, что используют базу данных MySQL для хранения информации, например WordPress, можно использовать стандартную SQL-функцию REPLACE для замены одних данных на другие. Например заменить адрес сайта в абсолютных ссылках для использования защищенного протокола с http://moonback.ru/ на https://moonback.ru/
MySQL запрос для замены текста в таблице
В общем случае команда запроса выглядит так:
UPDATE `таблица` SET `поле` = REPLACE(`поле`, 'текущее значение', 'новое значение');
Чтобы её выполнить необходимо подключиться к вашей базе данных с помощью PhpMyAdmin, для этого введите в адресной строке браузера адрес: domain.tld/phpmyadmin (вместо domain.tld подставьте адрес своего сайта).
Если у вас WordPress, то по-умолчанию искомая таблица с записями называется wp-posts:
А столбец ячеек с содержимым записей post_content.
Пример использования SQL запроса для замены BBCode
Применительно к WordPress, чтобы заменить в записях все теги BBCode для жирного текста на HTML эквивалент будем использовать следующий набор команд:
UPDATE `wp-posts` SET `post_content` = REPLACE(`post_content`, '[b]', '<strong>'); UPDATE `wp-posts` SET `post_content` = REPLACE(`post_content`, '[/b]', '</strong>');
Для этого нужно перейти на вкладку SQL:
И вставить в окне приведенный выше код, после чего нажать кнопку [Вперёд]
Благодарности
При написании статьи были использованы следующие источники: