Полезные SQL запросы для WordPress

WordPress как и большинство других CMS хранит все свои данные в базе данных MySQL. Именно там находятся все ваши записи, страницы, комментарии, теги, пользователи, пароли и много чего еще.

Для тех, кто хочет «повникать» в структуру БД WordPress и понять, что с чем связано, привожу схему.

wordpress mysql

Более детально об этом написано здесь: http://habrahabr.ru/post/233479/
Что бы вы понимал большинство плагинов цель которых справиться с рутинными действиями в один клик (например: удалить все теги, ревизии, комментарии и т.д) обычно могут обходиться всего одним запросом к БД.

Перед началом работы с базой данных следует сделать её дамп — на случай что что-то пойдет не так или нужно будет все вернуть обратно. Все действия я рекомендую делать в phpMyAdmin ну или в любом другом удобном Вам менеджере для работы с БД. Окно для вставки SQL-запросов в phpMyAdmin выглядит так:

phpmyadmin

По умолчанию WordPress использует префикс в БД «wp_» если вы назначили другой, то просто подкорректируйте нужный запрос к БД.

1. Удаление ревизий записей

При редактировании записи CMS сохраняет в базе данных как старую версию записи так и новую. Со временем база разрастается, что заметно понижает скорость работы сайта. Удалить все ревизии wordpress можно с помощью такого запроса:

wordpress sql

2.Удаление всех комментариев помеченных как спам

3.Выборка почтовых адресов комментаторов

Этот запрос позволяет выбрать все почтовые адреса из комментариев. Удобно когда нужно сделать почтовую рассылку.

4. Сброс пароля администратора WordPress

Стоит заметить, что если у вас другой логин, то нужно его вписать вместо admin.

5. Удаляем ненужные wp_postmeta

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

Где meta_name — название произвольного поля.

6. Переназначить все свои записи на другого автора.

Если вам с каких-то причин нужно переназначить большое количество статей на нового автора:

id авторов вы можете посмотреть в таблице wp_users, или в строке браузера наведя на имя автора в панели администратора.

7. Отключение всех плагинов

Случалась у меня такая неприятная ситуация: «кривой» плагин при активации вешал движок так, что даже в админку нельзя было зайти. Вместо того чтобы удалять плагин из папки plugins можно просто деактивировать все плагины таким запросом:

8. Найти и заблокировать ip адреса злостных спамеров

В этом вам поможет такой SQL запрос:

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

order allow,deny
deny from 127.0.0.1 -адрес 1
deny from 127.0.0.2 -адрес 2
……………………….
allow from all

9. Удалить комментарии с определённым url

Часто спамеры изощряются по-настоящему и постят свои комментарии с разными никнеймами, почтами, текстом ради того чтобы протолкнуть продвигаемую SEO-ссылку в поле url. Удалить все комментарии c одинаковым полем url можно с помощью такого запроса:

Тут spamurl нужно заметить на нужный нам сайт.

10. Заменить часть контента во всех записях

Ситуация: Вы в некоторых своих статьях постили реферальную ссылку для привлечения партнеров в партнерскую программу. Записей на сайте очень много и нужно заменить старую ссылку на новую. В этом нам поможет такой запрос:

Естественно вместо ссылки может быть что угодно: текст, цифра, ссылка на картинку ну и так далее.

Если вы знаете, и главное используете какие-то полезные SQL- запросы для wordpress пишите их сюда в комментарии, и я с радостью добавлю их в статью.