Есть вопросы?

Напишите мне

Ваше имя*

Ваш E-Mail*

Сообщение (опишите суть заявки, по возможности, подробней.
Что именно нужно - сайт? раскрутка? тексты? консультация?)

Прикрепите бриф или другой файл

 Отправляя данную заявку, я подтверждаю, что ознакомлен с "Политикой конфиденциальности"


Продающий текст 

Эффективный сайт

Продвижение и раскрутка

Полезные SQL-запросы к базе данных wordpress – что это и зачем?

Про популярные SQL-запросы к базе данных wordpress в поиске Яндекса и Гугла можно найти несколько статей. Большинство из них – рерайт одного англоязычного текста, которому уже много лет и который писался под старые версии вордпресса. Многие запросы из этих статей не работают. Я предлагаю выборку  SQL-запросов, актуальных на 12 декабря 2013 года,  протестированных для версии wordpress 3.7.1

ИТАК:

Если у вас есть сайт на WordPress, то иногда вы встречаетесь с задачами, которые неудобно, а то и невозможно, решать через панель управления. Но, даже если Ваш сайт взломан и Вы не можете попасть в админку (ситуация не самая типичная, но мне неоднократно встречалась), для многих проблем есть другой путь решения: SQL-запросы для wordpress. Для начала давайте разберемся, что это.

База данных

Вся информация сайта — записи, страницы, пользователи, комментарии и тому подобное — хранится на сервере баз данных MySQL. Доступ к нему, как правило, осуществляется через админку хостинга и приложение, с которым мы будем работать, называется PhpMyAdmin — оно нужно для управления базой данных. Войдя в него, мы увидим примерно такую картину:база данных wordpress

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

ID — это номер записи, а post_author — ID автора и т.д.

Структура базы данных и префиксы таблиц  Wordpress

Теперь рассмотрим, что же именно хранится в наших таблицах.

1)                 wp_posts — основная таблица, в которой хранится контент — записи, их название, авторство, дата создания, статус записи, разрешено ли комментирование и многое другое.

2)                 wp_postmeta — дополнительные данные о записях, таки как прикрепленные файлы и произвольные поля, появляющиеся, например, при установке плагинов.

3)                  wp_users — данные о всех пользователях сайта: их логины, пароли, электронная почта  etc.

4)                 wp_usermeta — профили пользователей и их настройки.

5)                 wp_comments — комментарии для статей

6)                 wp_commentmeta — дополнительная информация о комментариях, например, помечен ли комментарий как спам.

7)                 wp_terms — категории и тэги, к которым может относиться статья.

8)                 wp_term_taxonomy — в этой таблице хранится иерархия категорий, то есть она служит для построения дерева вложенности.

9)                 wp_term_relationships — в этой таблице задается вхождение статьи в какую-либо категорию.

10)             wp_links — все ссылки (блогролл) и информацию о них.

11)             wp_options — все настройки вордпресса: и стандартные, и настройки плагинов.

SQL

SQL — Structured Query Language — это специальный язык для манипуляций с данными. Мы не будем вдаваться в тонкости программирования, поэтому рассмотрим его в общих чертах, чтобы понимать, что именно делают полезные запросы, о которых ниже.

Нас будут интересовать три типа запросов:

1)                 SELECT — выборка данных. Обращаясь к каким-либо таблицам и задавая условия, мы можем получить от базы данных любую выборку. Например, все е-мэйлы комментаторов. Синтаксис такого запроса выглядит так:

SELECT что_выбрать FROM откуда_выбрать WHERE условия;

2)                 UPDATE — изменение данных. Точно также, как и для SELECT, изменить какую-то выборку данных, ограниченных условиями, то есть в общем случае изменяется множество строк таблицы за один раз. Синтаксис:

UPDATE изменяемая_таблица SET что_меняем = на_что_меняем WHERE условия;

3)                 DELETE — удаление данных. Будьте осторожнее с этим оператором, так как данные удаляются из таблиц насовсем. Единственное, что можно сделать, если вы нечаянно удалили лишнее — восстановить базу из резервной копии.

DELETE откуда_удалить WHERE условия;

Полезные запросы к БД вордпресс

Первое, что нужно сделать, когда вы хотите выполнить какой-то запрос, – это сохранить резервную копию ваших данных. Это можно сделать прямо в PhpMyAdmin, в разделе экспорт. Если ваш сайт достаточно большой, выберите способ компресси, например, zip.экспорт бд wordpress

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

После выполнения запроса вы не должны видеть никаких сообщений об ошибке. (Если вы их видите, значит что-то пошло не так, и лучше восстановить резервную копию.) Результат выполнения запроса должен быть похож на:результат запроса к базе данных wordpress

Смена пароля wordpress

Если по какой-то причине вы потеряли доступ к админке сайта (например, он взломан) и восстановление на почту не работает, то вы можете поменять пароль с помощью запроса

После выполнения такого запроса вы сможете зайти в админку с паролем 12345. Не забудьте сразу после входа с этим паролем поменять его на более сложный!

Что именно мы делаем? В поле user_pass таблицы wp_users хранится пароль в зашифрованном виде. Мы меняем его для пользователя с логином admin.

Если вы меняли логин, то вместо ‘admin’ в тексте запроса вы можете смело написать ваш логин.

Если же логин был заменен злоумышленником, то можно попробовать восстановить пароль по ID пользователя, а также вернуть первому пользователю имя admin.

Кстати, в сети можно встретить множество запросов со сменой пароля с помощью функции MD5. Имейте ввиду, что такой метод не работает и уже довольно давно.

Смена логина wordpress

Если вам не нужно менять пароль, а хочется только сменить логин, то вам поможет следующий запрос:

 

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

Мы не будем рассматривать, как в принципе закрыть комментирование, потому что сейчаc это легко делается через админку сайта. А закрытие комментариев в какой-либо категории удобно сделать с помощью запроса.

 

 

Мы закрываем комментарии для категории Uncategorized. Вместо этого имени вы можете подставить любое свое название категрии. А если установить comment_status равным не ‘closed’, а ‘open’, комментарии будут открыты. Установка этого поля в значение ‘registered_only’ позволит комментировать только зарегистрированным пользователям.

Закрыть комментарии в старых постах wordpress

Аналогичным образом можно закрыть комментарии в старых постах.

 

 

Здесь post_date – дата создания записи, и мы закроем комментарии ко всем опубликованным записям, созданным ранее 2013 года.
Изменение сайта комментатора

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

1)      Множество комментаторов с одинаковым URL

В таком случае удобнее всего заменить URL во всех комментариях разом

 

 

Используя функцию REPLACE, мы заменяем адрес сайта ‘wordpress.org’ на ‘sales-text.ru’, независимо от того, кто оставил этот комментарий. Естественно, вместо ‘wordpress.org’ и ‘sales-text.ru’ можно подставить любые нужные вам слова.

2)      Один комментатор, спамящий разными URL

Таким образом, мы заменим адрес сайта комментатору Mr WordPress с e-mail wordpress@wordpress.org во всех его комментариях. В принципе, можно удалить из этого запроса последнюю строчку и не указывать e-mail, но тогда есть риск затронуть других комментаторов, если они указали то же имя (оно совершенно не обязано быть уникальным). И, естественно, вместо ‘http://wordpress.org’ можно указать любой другой сайт.

Собрать все e-mail комментаторов wordpress

Это можно сделать, используя совсем простой запрос.

 

После его выполнения в PhpMyAdmin вы увидите выборку уникальных e-mail комментаторов. Отметив их все и воспользовавшись кнопкой Экспорт, вы можете сохранить их в файл и использовать в дальнейшем по собственному усмотрению.сбор e-mail комментаторов wordpress

Удаление уведомлений wordpress

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

 

Pingback здесь обозначает, что комментарий является таким уведомлением.

Смена домена wordpress

Если вы хотите перенести сайт на новый домен, это также можно быстро и эффективно сделать с помощью запросов. (Если вы переносите сайт на новый хостинг, не забудьте предварительно скопировать туда все файлы. А также импортировать старую базу данных с помощью вкладки Импорт в PhpMyAdmin.)

Замена домена производится несколькими запросами. Первым делом нам надо откорректировать имя в настройках вордпресса – в таблице wp_option.

 

 

Мы меняем значение двух опций – home и siteurl. Не забудьте вписать имя вашего нового домена вместо ‘http://new-site.ru/’.

Теперь нужно поменять имя домена в записях.

 

 

Здесь и далее ‘http://old-site.ru’ – старое доменное имя, а ‘http://new-site.ru’ – новое, на которое мы заменяем.

Следующим пунктом надо исправить домен в произвольных полях.

 

 

Осталось поправить только GUID.

 

 

Готово! Замена домена выполнена!

Замена любого текста в записях wordpress

Также в записях можно поменять не только доменное имя, но и абсолютно любой текст. Например, вы захотели сделать во всех записях сайта из какого-то слова ссылку.

 

 

Здесь мы делаем из слов ‘мой сайт’ ссылку на my-site.ru в поле post_content, которое содержит текст записи.

Аналогично можно заменить и что угодно другое. Синтаксис функции REPLACE такой:

REPLACE(имя_поля, что_меняем, на_что_меняем)

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

По умолчанию в вордпрессе включены ревизии записи. (Ревизии – это промежуточные редакции записи.) Иногда они бывают нужны, и многие не хотят их отключать. А некоторые просто не знают о такой возможности. Тем временем, база сайта забивается огромным количеством этих ревизий и иногда для улучшения производительности сайта их следует удалять.

 

 

Здесь мы удаляем все записи, и всю связанную с ними информацию, если их тип ‘revision’.

Деактивация всех плагинов wordpress

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

 

Не забудьте после этого зайти в настройки плагинов и активировать те, которые нужны.

На этом всё. Если Вы хотите узнать, как выполнить какие-то другие полезные запросы – пишите в комментариях.

Все материалы сайта созданы не корысти ради, а токмо волею пославшей меня жены на основе собственного опыта и лучших открытых/закрытых источников по интернет-бизнесу.
Если Вам нравится то, что  Вы здесь прочитали – покликайте по кнопкам расположенным ниже, поддержите проект.

 



 

Понравилась статья? Подпишитесь и читайте новые статьи на сайте сразу после публикации!

8 комментариев: Полезные SQL-запросы к базе данных wordpress – что это и зачем?

  • Как изменить размеры всех изображений в старых постах?

    • Сам не делал, но думаю так:

      1) экспортировать базу сайта Mysql через phpMyadmin на компьютер
      2) Открыть её в блокноте или Notepade++
      3) Заменить через ctrl+H все стандартные куски кода с размерами изображений (например widht=150 на widht=125), сохранить
      4) Импортировать базу обратно в phpMyadmin

  • Николай, здравствуйте.
    Хочу спросить: у Вас в посте смена домена у ВП описана в 4х запросах. А можно их все объединить в один и выполнить за один раз? Или обязательно поочерёдно?

    • Могу ошибаться, но наверное нельзя)
      А в чём сложность выполнения запросов поочерёдно?

      • Да ни в чём, в принципе, просто хотел оптимизировать и ускорить нажимание кнопок…

        Я попробую выполнить все запросы сразу, о результатах отпишу.

        • Буду благодарен, если отпишетесь и приведёте запрос. Я к слову – сам пользуюсь этой статьёй, когда меняю домены.) Единственный момент – может остаться код со старым доменом в виджете “Текст”, можно сменить ручками.

          • Да, сразу всё в одном выполнить не получилось, выдало мне ошибку #1064 – You have an error in your SQL syntax; со ссылкой на ту строку, где заканчивался певый запрос и начинался второй.

            По отдельности всё сработало.

  • спасибо за этот царский пост очень помог мне

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Подписка на полезные статьи:

Подпишитесь на рассылку и присоединитесь к 847 подписчикам.