Привет! Блог SOEBID.NET снова рад представить вам новую информацию о работе с WordPress! Теперь мы будем знакомиться с базой данных (БД). Думаю, что аудитория поделится 50 на 50 – половина знает, что это такое и умеет работать с БД, а вторая половина понятия не имеет, что там внутри и какую пользу может принести знание функционала базы данных и умение с ней работать.

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

структура БД WordPres

Это не обязательно должно совпадать со структурой вашей БД – разное количество плагинов, разные шаблоны, скрипты и т.д. будут добавлять свои таблицы, но основная структура останется такой же. Например, таблицы wp_users или wp_comments.

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

Да вот самый простой пример – черновики записей. Если у вас в блоге есть хотя бы сотня записей, то можно представить, сколько ревизий хранит ваша БД. Вы исправили в статье всего одну букву, а это уже копия статьи, которая хранится в базе данных. И таких копий может быть тысячи, и все они занимают место на сервере, а при обращении к статье из админпанели еще и создают дополнительные, никому не нужные запросы. Ну и так далее. А из phpMyAdmin можно такие копии просто удалить. Поэтому лучше уметь обращаться с базой данных – иногда она творит чудеса.

Структура базы данных WordPress

База данных появляется в процессе установки WordPress, и сразу содержит определенное стандартное количество таблиц, имена которых начинаются с какого-то префикса. Стандартный префикс для WordPress – wp_. Можно задать и другой префикс, но это нужно делать при создании новой БД: в старой базе данных сделать это не получится – сайт сломается. Префикс можно задать абсолютно любой, и делается это для улучшения защиты от взлома. Так как при создании своего первого сайта я не знал об этом, то и префикс БД у меня обычный — wp_.
Итак, новая база данных состоит из 11 таблиц:

  1. wp_commentmeta – информация о комментариях.
  2. wp_comments – таблица с комментариями.
  3. wp_links — блогролл.
  4. wp_options – все настройки сайта.
  5. wp_postmeta – информация о записях блога.
  6. wp_posts – сами записи.
  7. wp_terms – связь рубрик и ссылок.
  8. wp_term_relationships — связь записей с категориями и тегами.
  9. wp_term_taxonomy – связь рубрик, тэгов и ссылок.
  10. wp_usermeta – информация о всех зарегистрированных пользователях.
  11. wp_users – ваши данные.

Сейчас у вас наверняка таблиц больше, так как многие плагины используют свои способы обращения к БД, старые версии WordPress используют другие таблицы, или вы удалили какой-то плагин, который использовал БД, а таблицы остались. Так или иначе, но все таблицы узнаваемы и выполняют свои функции. Так, на скриншоте вы видите несколько таблиц (rxd_), не имеющих префикса wp_. Эти таблицы относятся к некоему скрипту на моем сайте.

Таблицы БД WordPress

Для того, чтобы зайти в свою базу данных, все панели управления на хостингах используют панель phpMyAdmin. Зайдя в свою панель панель phpMyAdmin , вы должны открыть свою базу данных. По умолчанию там присутствует еще одна БД под названием information_schema. Вторая база данных – ваша. Чтобы в нее попасть, достаточно щелкнуть по значку , а для редактирования внутренней строки таблицы – нажать на кнопку  . Все указатели снабжаются всплывающими подсказками, поэтому заблудиться здесь довольно проблематично. Дальше я расскажу более подробно о назначении основных таблиц, которые могут вам пригодиться.

Таблица wp_commentmeta

Если у вас еще нет комментариев в блоге – значит, ваш блог еще слишком молод. Но любой комментарий содержит и дополнительную информацию, которая должна где-то храниться. Это имя комментатора, адрес сайта и почты, его ID, и т.д. Все это хранится в базе данных, в таблице wp_commentmeta.

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

Таблица wp_commentmeta

Так, плагин Akismet защитил мой блог уже от 8000 спамных комментариев. А если они не нужны, то и сведения о них можно удалить из БД. Здесь должен сразу предупредить – всегда делайте резервную копию БД, прежде, чем начать с ней работать. Это можно сделать как в панели управления БД на вашем хостинге, так и при помощи плагина WordPress Database Backup.

Таблица wp_comments

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

Таблица wp_comments

Таблица wp_links

В этой таблице сохраняются все ваши ссылки (блогролл). Ссылки можно добавлять или удалять прямо из админпанели, но что-то в последних версиях Вордпресс я вообще не вижу этого пункта меню. И правильно сделали разработчики – лично я этими возможностями (ссылки на wordpress.org, на кодекс, на RSS новостей и RSS комментариев) никогда не пользовался, а при необходимости просто добавлял страницу на сайт типа «Партнеры» или «Сотрудничество».

У меня эта таблица осталась от старых версий WP, и ее можно смело удалить, что я сейчас и сделаю. Так как сейчас у меня нет здесь ни одной ссылки, то и таблица, соответственно, пустая:

Таблица wp_links

Таблица wp_options

Здесь вы найдете все настройки вашего сайта на WordPress. Некоторые из них дублируются в админпанели WordPress, но не все. Некоторые плагины после активации создают свои таблицы настроек, и это также видно в этой таблице. Сначала в wp_options, в первых ее строках, вы увидите общие настройки блога, а ниже – все таблицы настроек, добавленные вашими плагинами. Первыми идут плагины, установленные раньше:

Таблица wp_options

Таблица wp_postmeta

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

Таблица wp_postmeta

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

Таблица wp_posts

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

Таблица wp_posts

Кстати, если уж мы подошли к изучению этой таблицы, расскажу, как удалять ревизии, то есть черновики записей. И снова напоминаю – сделайте сначала резервную копию БД.

Как удалять ревизии

Итак, чтобы удалить все черновики, вам нужно реализовать запрос к базе данных такого вида:

 DELETE FROM wp_posts WHERE post_type = «revision»; 

Его нужно прописать в новом окне, которое появится, если вы нажмете на кнопку «SQL» вверху страницы вашей БД. Просто скопируйте его отсюда, он работает для всех версий WP.

Запрос к БД

Нажимаете «ОК», и все – черновиков нет! Теперь можете проверить в админпанели какую-нибудь свою запись, в которой вы наверняка делали правки – все черновики исчезли. Рекомендую хотя бы раз в месяц пользоваться этой функцией.

Таблица wp_term_relationships

В этой таблице можно проследить ассоциативную связь ваших статей с рубриками и тэгами, которые прописываются в таблице wp_terms в вашей БД. В этой таблице вы не увидите визуально понятной информации – только строски с ID записи и соответствующий ID рубрики и тэгов. Практически ее использовать сложно, разве что только, чтобы узнать идентификатор рубрик для работы некоторых плагинов, например, Related Posts.

Таблица wp_term_taxonomy

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

На моем сайте, с базы данных которого я делал скриншоты, дочерних рубрик около десятка, и все это прекрасно отслеживается в таблице. Менять их я, конечно, не собираюсь, но буду иметь в виду такую возможность. А вложенность рубрик видна в строке parent – 1,2 или 3.

Таблица wp_term_taxonomy

Таблица wp_usermeta

Таблица wp_usermeta предназначена для хранения дополнительной информации о зарегистрированных пользователях. Здесь можно править личные данные, профиль, менять визуальное оформление страницы профиля пользователя, его никнейм – в общем, все, что никогда и никому не понадобится. Зачем мне, администратору, менять цвет на странице профиля какого-то Васи Пупкина? Только если он сам попросит, но он это может сделать и самостоятельно.

Таблица wp_usermeta

Таблица wp_users

Последняя таблица вашей базы данных — wp_users. В ней – не все данные, а только список зарегистрированных пользователей, логин и пароль, но они отображаются в зашифрованном виде. Также здесь хранятся e-mail адреса пользователей, дата их регистрации, адреса сайтов и отображаемое на сайте имя, которое вы тоже можете изменить.

Здесь можно воспользоваться одной фишкой, которой я пользуюсь уже больше года – изменить свой логин. Это я делаю раз в месяц в целях безопасности, да и спамеров-ботов значительно поубавилось. Ведь большинство из нас так и оставляет логин для входа в админпанель «admin», и это все знают. Остается толь подобрать пароль, а таких программ в интернете можно нарыть сколько угодно.

Поэтому смена логина хорошо вас подстрахует и от взлома, и от спама. Как это сделать? Да очень просто. Себя, я думаю, в этом списке вы найдете. В поле user_nicename два раза нажмите левой мышкой, и можете редактировать свой логин. То есть – задать новый, после чего сохраниться.

То же самое касается и пароля – изменения проводятся в поле user_pass. Там вы увидите абракадабру типа $P$BoGKyKr4ZjDpIfazMS9/xUt802xt5T – не бойтесь, смело удаляйте ее и пишите новый пароль нормальными буквами и цифрами, а БД сама все зашифрует. Ниже на скриншоте вы видите, как выглядит эта таблица:

Смена пароля и логина

А на этом скриншоте – как менять логин (точно так же меняется и пароль, если нужно):

Смена пароля и логина

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