Несколько простых запросов MySQL

В этом месте у кого-то может возникнуть вопрос: а зачем это?

А затем, что некоторые вещи с блогом проще сделать именно с помощью запросов к базе данных MySQL.
Более того, есть некоторые задачи, которые можно решить исключительно с помощью запросов, и никак иначе.
Поэтому сегодня — примеры простых запросов к MySQL.

Простая ситуация: вы забыли пароль от собственного блога. Тут кто-то скажет: есть же электронная почта. И новый пароль можно получить на почту. Но что делать, если пароль от почты вы тоже забыли? В этом случае придется лезть на сервер, открывать PHP MyAdmin, и выполнить запрос к базе данных для смены пароля. Выглядит он вот так:

Запрос для смена пароля в блоге

Пароль тут подставляется в кавычки, туда, где сейчас написано 12345.

Это, кстати, не единственная задача, которую можно решить с помощью данного MySQL-запроса. Если блогом пользуется еще несколько авторов, то пароль можно поменять и для них. Чтобы это сделать, нужно после ID поставить цифру 2, 3, и т. д. (администратор всегда числится под номером 1, что и показано в примере запроса).

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

запрос для разделения сайта и блога

http://www.site.com/ в этом запросе — адрес сайта, который является рабочим в настоящий момент.

Как удалить все спамовые комментарии разом? Довольно просто. Вот запрос, который уничтожит в базе все комменты, которые были отмечены как спам:

удаление спамовых комментариев

Допустим, вы решили перенести блог на другой домен. Кто-то может решить, что ничего сложного в этом нет, и все, что надо сделать для такого переноса — это поменять адрес блога в админке на новый. Проблема в том, что это не так. Для переноса блога на другой домен нужно будет еще поменять globally unique identifier, он же GUID. А для того, чтобы его поменять, опять придется лезть на сервер, запускать php MyAdmin, и выполнять простой запрос MySQL вида:

запрос для смены guid

Эту же операцию следует проделать, если вы перетащили свой блог к другому хостеру. Еще следует сказать, что работать блог может и без этого запроса. Однако выполнять его все-таки нужно, для того, чтобы перенаправление с постов со старым УРЛ на посты с новым УРЛ всегда работало корректно.

А еще с помощью простого MySQL-запроса можно изменить автора всех постов.

Делается это вот так:

изменение автора во всех постах

Ревизии записей — можно удалять не только с помощью специального плагина, но и напрямую, с помощью вот этого запроса:

удаление ревизий записей

Как видим, после запроса удаляются не только собственно ревизии записей, удаляется еще и вся информация, которая связана с этими ревизиями, и находится в таблице wp_postmeta.

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

очистка мета-данных

meta-key в данном запросе — это мета-ключ, который тот или иной плагин прописывает в данную таблицу. Какой конкретно это будет ключ — зависит напрямую от плагина, т. е. тут все индивидуально.

Как известно, в wordpress можно оставлять комментарии.
А при комментировании — комментатору предлагается ввести не только ник, но и адрес почты. Если вам вдруг зачем-то понадобилось собрать все комментаторские е-мейлы, то это можно сделать вот так:

запрос для сбора е-мейлов комментаторов

Для чего вы будете использовать этот список — это уже второй вопрос. Здесь просто показан простой инструмент для сбора адресов почты.

Пингбэки тоже можно удалять, примерно также, как и спамовые комменты. Запрос выглядит довольно просто:

удаление всех пингбеков в блоге

Теперь про метки.
Метки, мальчики и девочки — это зло.
Именно поэтому с некоторых пор они на этом блоге не используются. Если вы стерли какой-то пост, снабженный метками — пост сотрется, а вот метки — стираются далеко не всегда. Чтобы понять, какие метки используются, а какие нет, можно сделать вот такой запрос к базе данных:

вывод неиспользованных меток

Этот запрос выведет список меток, которые в данный момент не используются, и не задействованы ни в одной записи. Все, что нужно сделать после этого — это удалить их.

Если вы вдруг приняли верное решение, и решили избавиться от меток вообще, то грохнуть их все разом можно вот таким MySQL-запросом:

удаление всех меток разом

Теперь про плагины.

Плагины в вордпресс, штука, конечно, хорошая. Но и они могут создавать проблемы. Конечно, плагин можно отключить из админки блога. Но что если вы не сможете войти в админку блога после активации такого интересного плагина?
Здесь кто-то может возразить — можно подключиться по фтп, и просто удалить папку с плагином.
А что, если вам точно неизвестно, какой именно плагин создает проблемы?
(Это особенно актуально после обновления движка блога)
Единственное, что остается делать в этой ситуации — это отключить все плагины разом, используя все те же многострадальные запросы к базе данных.
Отключение всех плагинов делается вот так:

запрос для деактивации всех плагинов

Еще одна рабочая ситуация.

Ни для кого не секрет, что блоги комментируют в основном для получения ссылки.

Ссылка, оставленная комментатором, может вести как на хороший сайт, так и на откровенное говно.
Можно решить вопрос быстро и радикально — просто запретить комментаторам оставлять ссылки.
Но так поступают далеко не все.
И тогда возникает проблема: бывает так, что когда комментатор оставлял ссылку на свой сайт — сайт тот выглядел прилично. А через какое-то время, наспамив этому сайту хотя бы минимальные пузомерки, «комментатор» ставит этот сайт под сапу.
Естественно, ссылаться на такую каку приличным людям не следует.
И естественно, УРЛ обнаруженного говносайта следует изгнать с блога поганой метлой.
Для этого выполняется вот такой запрос:

удаление адреса сайта комментатора

И УРЛ говноблога подменяется на УРЛ морды вашего блога.

Ну и раз уж речь зашла о комментариях и о комментаторах — вот еще один запрос, который позволит выпиливать комменты, в которых присутствует какое-нибудь неправильное слово или фраза:

удаление комментариев с нежелательным словом

Запретить разом комментирование всех постов можно вот так:

запрет комментирования постов

(А чтобы разрешить комментирование всех постов нужно «closed» заменить на «open»)

Еще можно позволить комментировать только зарегистрированным пользователям.
Запрос для этого выглядит вот так:

разрешение комментирования для зарегистрированных пользоватлей

Существуют и более сложные запросы к базе данных MySQL, но о них как-нибудь в следующий раз.

P.S. Ну и эта. Надеюсь, никому не надо объяснять, что все вышеизложенное справедливо только для тех блогов, в которых никто не менял префикс базы данных. Если префикс был изменен — все wp_ в запросах нужно заменять на тот префикс, который у вас прописан в базе в данный момент.



Запись опубликована в рубрике Wordpress. Добавьте в закладки постоянную ссылку.