Высоков.ру

Запрос SQL Как удалить старые статьи WordPress без просмотров

удаление статей

Наверное, неважно, что статьи никто не смотрит, если они проиндексированы поисковиками – пусть будут! Но как удалить старые статьи с минимальными просмотрами все сразу?

Для удаления старых статей буду использовать SQL-запрос к базе данных (БД) WordPress.

Как удалить старые статьи без просмотров с помощью SQL-запроса

По условию задачи, которую я себе поставил, с помощью SQL-запроса к базе данных надо найти статьи, количество просмотров которых меньше двух, например, и написаны они не ранее трех месяцев назад.

Для этого SQL-запрос к WordPress будет примерно таким:

DELETE a,b FROM wp_posts a LEFT JOIN wp_postmeta b ON ( a.ID = b.post_id ) WHERE a.post_date < '2014-08-12' AND a.post_type = 'post' AND b.meta_key = 'views' AND b.meta_value < '3'

Здесь дается запрос на удаление строк (DELETE) из таблицы БД (FROM), в которой записаны посты (wp_posts).

При этом проверяется условие (WHERE), что в другой таблице (wp_postmeta) в соответствующих столбцах дата (post_date) меньше сегодняшней и значение ключа (view) меньше 3 (просмотров).

Очень важно! Сохранить базу данных перед изменением!

Любое изменение базы данных, тем более удаление информации, тем более – удаление запросом, надо делать только после сохранения предыдущего варианта БД. Ведь любая ошибка в каком-то знаке может стоить рухнувшего сайта.

Внимание! Статьи удаляются не в корзину, а вообще!

Это можно сделать с помощью плагинов управления базами данных WordPress. Или идем в phpMyAdmin на хостинге, выбираем нужную базу данных в верхнем меню нажимаем «Экспорт».

В принципе, можно ничего не настраивать, а оставить «быстрый способ экспорта», формат – SQL и нажать кнопку «Вперед».

Сохраняем файл в формате *sql и, если что-то пойдет не так, то можно будет удалить испорченные таблицы и в меню выбрать «Импорт», чтобы загрузить в базу данных сохраненный файл.

Плагины делают примерно то же самое. Также нормальный хостинг ежедневно сохраняет базы данных (и файлы сайта), чтобы можно было сделать откат к предыдущему рабочему варианту.

Удаление непопулярных записей с помощью запроса SQL

Теперь в том же верхнем меню phpMyAdmin выбираем «SQL» и в поле «Выполнить запрос к базе данных…» пишем указанный выше пример запроса (DELETE и так далее). Нажимаем внизу кнопку «Вперед» (или «GO»).

Вот я буду уничтожать сайт, из-за которого и появился этот «эксперимент». На данный момент в блоге имеется 275 записей. Нажимаем «Вперед» на странице запросов SQL…

…система сообщает, что «Удалено 237 строк. (Запрос занял 0.5101 сек.)».

Теперь статей осталось только 182 штуки.

Смотрю, не удалено ли лишнего, не остались ли статьи, которые должны быть удалены: нет, всё в порядке.

Обращаю еще раз внимание, что это очень радикальный способ «очистки» сайта!

Кроме того, появляются два ПОКА нерешенных вопроса:

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

2. В статьях были ссылки на другие статьи, которые сейчас удалены.

3. На других сайтах остались ссылки на страницы, которые мы удалили.

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

Как удалить картинки и ссылки – расскажу в следующий раз, а что делать с ссылками других сайтов, недавно было написано у Деваки («я другой узел вяжу»).

3 комментария к записи «Запрос SQL Как удалить старые статьи WordPress без просмотров»
  1. Tipocheg:

    Здравствуйте. Первый пункт как раз и необходимо доработать — удалить оставшиеся картинки.
    А вообще — можно ли каким-то образом удалить из с помощтю админки

    не посещаемые страницы сразу с картинками?
    Заранее благодарен за ответ.

    • blogmann:

      Есть разные плагины, которые находят неиспользуемые картинки и предлагают удалить. Например, WP Media Cleaner, WP Clean Up и другие.

  2. Антар:

    Отлично!!! Вместо книги на ночь.

    Кто рано встаёт, тот с собакой гуляет.

Оставить комментарий к записи «Tipocheg»