Как редактировать тысячи сообщений WordPress с помощью одной команды SQL

  • Mark Lucas
  • 0
  • 1783
  • 281
Реклама

Владеть блогом WordPress и вести его очень весело, особенно когда вы только начинаете. Создай сайт или выбери классную тему и напиши эти первые несколько постов в ожидании огромного скопления людей, которые, как ты уверен, направляются к тебе. Реальность не займет много времени, и, прежде чем вы узнаете ее, вам не понравится тема, поток посетителей - не более, чем струйка, и вы понимаете, что ваш веб-хостинг не имеет достаточной мощности, в которой вы нуждаетесь.

Создание блога занимает годы, и много боли и борьбы - я уверен, что Айбек подтвердит это. Затем происходят основные переходы, когда вы понимаете, что должны сделать некоторые важные изменения, и это займет много работы..

В моем блоге пришлось внести ряд существенных изменений, но одно из самых трудных было связано с тем, что я использовал определенный ручной метод для вставки рекламы Google в статьи блога..

Изменение сообщений с помощью одной команды SQL

Проблема в том, что после нескольких лет работы над блогом у меня было около 1000 сообщений с вставленной рекламой Google. Если бы я когда-нибудь захотел внести изменения, мне нужно отредактировать тысячу постов..

Я хотел использовать эту замечательную надстройку шаблона в посте, о которой я писал в 2010 году. Это автоматизировало бы вставку рекламы, продвигающейся вперед, но если бы я использовал ее, не удаляя все эти существующие рекламы, я бы получил два реклама в старых статьях.

Чтобы удалить старую рекламу, мне пришлось немного поработать над магией SQL, и я собираюсь поделиться этим с вами сегодня. Действие происходит в phpMyAdmin, и вам нужно выбрать базу данных вашего блога в левом меню.

Код, который вы собираетесь использовать для удаления разделов вашего контента, будет в теге SQL. Под этим я подразумеваю код, который я собираюсь показать вам, вы сможете использовать для удаления любого контента, который существует в нескольких сообщениях в блоге, от 2 до 200 или более. Единственное требование заключается в том, что то, что вы хотите удалить, должно иметь общий начальный текст и конечный текст - как у рекламы Google есть общий начальный тег и конечный тег..

Вот как выглядят мои новые записи в блоге: объявление вставляется вручную сразу после “Больше” тег на каждой странице, выровненный по правому краю.

Способ размещения этого кода на странице выглядит следующим образом:

Как видите, у меня есть “тип сценария” начальный тег, который я могу использовать в начале каждого объявления, и “скрипт src” тег, который я могу использовать в конце.

Вот как это работает. Вы должны сказать SQL “Обновить” команда, что вы хотите полностью стереть этот блок вашей страницы. Вам нужно понять три основных функции MySQL - заменить, субстра а также разместить.

Сначала используйте LOCATE, чтобы сообщить команде расположение начальной и конечной точек. В моем случае я использую строки в начале и конце раздела, который я хочу удалить. Начальное местоположение на странице начала:

LOCATE ('', post_content)

Конечное местоположение сложнее. Locate дает вам начало строки, поэтому вам нужно добавить количество символов в самый конец строки, чтобы получить конечное местоположение.

LOCATE ('", post_content) + 93

Далее вам нужно будет рассказать “ЗАМЕНА” Функция точно, какой текст вы хотите заменить. Вы делаете это, извлекая фактическую строку из содержимого публикации, используя функцию SUBSTR. Вы должны передать ему начальное местоположение (которое у вас сейчас есть) и длину. Длина, которую вам нужно рассчитать, вычитая начальную позицию из последней позиции (которая у вас также есть).

Вот как это выглядит с кодом выше, вставленным в функцию SUBSTR:

substr (post_content, locate ('', post_content), ((locate ('', post_content) + 93) - (locate ('', post_content))))

Выглядит сумасшедшим, верно? Но если вы посмотрите внимательно, вы увидите, что есть три встроенных раздела - содержание публикации, начальное местоположение и длина.

Теперь, когда у вас есть точный текст, который вы хотите удалить из своих постов, все, что вам нужно сделать, это сказать функции REPLACE заменить его пробелом. Просто скопируйте приведенный выше код в следующую команду:

ОБНОВЛЕНИЕ wp_posts SET post_content = replace (post_content, string_to_replace, replace_string);

Как это:

ОБНОВЛЕНИЕ wp_posts SET post_content = REPLACE (post_content, substr (post_content, locate ('', post_content), ((locate ('', post_content) + 93) - (locate ('', post_content)))), ");

Запустив скрипт выше, если весь синтаксис выровнен правильно, вы должны увидеть следующие успешные результаты в phpAdmin.

Теперь, когда я перезагружаю сообщения в своем веб-браузере - вуаля! Объявление волшебным образом было удалено.

Не поймите меня неправильно, это не сработало для всех объявлений, потому что у меня было несколько старых, которые имели немного различное форматирование в начале и в конце. Нравится эта страница.

Но с небольшими изменениями, просто изменив точные теги для начала / конца, я смог перезапустить SQL и стереть их..

Этот метод будет работать, чтобы удалить любой контент, который есть в вашем посте WordPress. В этом прелесть наличия сообщений в базе данных MySQL. Вы можете просто запускать команды SQL для одновременной работы с тысячами сообщений, что экономит огромное количество ручной работы.. Просто убедитесь, что резервное копирование базы данных, прежде чем начать!

Есть ли у вас другие аккуратные варианты использования этой команды SQL? Попробуйте его в своей собственной базе данных WordPress и посмотрите, насколько хорошо он работает для вас. Поделитесь своим опытом и отзывами в разделе комментариев ниже.

Изображение предоставлено: Shutterstock




О современных технологиях, просто и доступно.
Ваш гид в мире современных технологий. Узнайте как использовать технологии и гаджеты, которые нас окружают каждый день и научитесь открывать интересные вещи в Интернете.