Понимание и работа с данными в WordPress. Часть 1. Введение. Структура таблиц wordpress
Структура базы данных Wordpress. Список таблиц Wordpress
В данной статье я хотел бы Вам рассказать про структуру базы данных WordPress. Многие могут сказать: зачем нам это надо? Действительно, так могут сказать только начинающие вебмастера и блоггеры. Ведь бывают такие случаи, что у Вас нет возможности зайти в консоль администратора WordPress (например, ошибка 500 Error). Вы же можете подключиться к своей базе MySQL и сделать необходимые действия: добавить рубрику, статью, страницу и так далее.
Также, Вы захотели поменять пароль администратора WordPress через MySQL, зашли в базу, а структуры ее не знаете.
Более подробная структура расписана и находится на официальном сайте WordPress. Поэтому мы не будем в данной статье рассматривать все подробно, а просто скажем несколько слов, насчет каждой таблицы, которая за что-то отвечает.
Наименование таблицы | Описание таблицы |
wp_terms | В данной таблице содержится весь список терминов WordPress. К терминам, в данном случае, относятся: название рубрик, меток, категорий ссылок. В данной таблице, один термин может быть как названием рубрики, так и меткой (например, рубрика Часы, а метка часы). Названия могут повторяться, но они все равно будут уникальными, так как они привязаны к определенной статье. |
wp_term_taxonomy | В данной таблице, каждый термин сопоставляется со своим типам. То есть, рубрика сопоставляется с названием, а также метки сопоставляются с метками (если они есть). То есть, в первой таблице мы формировали название, а во второй мы формируем описание и данные таблицы взаимосвязаны, то есть, дополняют друг друга. В данной таблице уже фактически формируются рубрики, а также метки, с полной информацией. |
wp_posts | Является основной таблицей, в которой хранятся все статьи, страницы сайта. Причем в ней будут хранится все версии записей (ревизии), но это в том случае, если у Вас в настройках wordpress включена такая опция. |
wp_postmeta | Эта таблица содержит дополнительные атрибуты, которые дополняют таблицу wp_posts. |
wp_term_relationships | В данной таблице происходит связывание страниц, записей, ссылок с и их рубриками, метками, которые находятся в таблице wp_term_taxonomy. |
wp_comments | В данной таблице содержатся комментарии поста или страницы. Здесь же содержится и полная информация об авторе комментария. |
wp_links | Простая таблица, в которой присутствует обычный список ссылок WordPress. Ссылки же могут быть разбиты на категории, которые находятся в таблице wp_terms, а связь осуществляется через таблицу wp_term_relationships. |
wp_users | В данной таблице существует полный список зарегистрированных пользователей WordPress, включая и администратора сайта. Здесь Вы можете менять пароль. |
wp_usermeta | Содержит дополнительные данные пользователей. |
wp_options | Здесь содержатся опции базы данных и самого сайта: название, адрес, электронный адрес и так далее. |
Хочется обратить внимание на то, что перед каждой таблицей стоит префикс wp_, который может у Вас отличаться. Данный, что я указал тут, задается по умолчанию. Теперь Вы знаете весь перечень таблиц и с легкостью их можете редактировать.
Также хочется сказать про то, что это основной перечень таблиц, без которых WordPress работать не будет. Другие же модули, плагины и различные скрипты могут создавать дополнительные таблицы.
Также советуем почитать на PressDev.RU
pressdev.ru
База данных: структура, оптимизация, плагины, SQL запросы
Здесь я расскажу вам о Базе данных, ее таблицах, плагине по оптимизации этих таблиц и секретов (хаки) по улучшению ее функциональности.База данных WordPress состоит из таблиц, названия данных таблиц начинаются с префикса «wp_»(по русски приставка), данная приставка служит, чтобы размещать например в одной базе данных несколько сайтов (один сайт использует например приставку wp_, а другой wp1_ и т.д.). При установке WordPress можно задать свой префикс для таблиц, но по по-умолчанию, предлагаемый вариант wp_.Скачать исходники для статьи можно ниже
Как увидеть эти самые таблицы базы данных?
Для этого нам нужно зайти на сам хостинг, ну например: hostinger.ru, зайти в свой аккаунт, в окошке ДОПОЛНИТЕЛЬНО выбрать ярлычек phpMyAdmin и войти в него, для этого вас попросят ввести пароль от базы данных. Вы увидите следующее:
Мы видим, что изначально созданная база данных имеет 11 таблиц, однако количество этих таблиц может меняться (например устанавливая плагины некоторые из них добавляют в базу данных свои таблицы, а у имеющихся таблиц добавляют свои поля, строки и т.д.).
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- wp_users
Рассмотрим поверхностно эти самые таблицы.
Для того, чтобы зайти в таблицу в phpMyAdmin, нажимаете мышкой в левом окошке на нужную вам таблицу и в правом окошке отображается ее содержимое.
Таблица wp_commentmeta
В нее записывается вся дополнительная информация по оставленным на вашем сайте комментариям (одобрен ли комментарий или нет, помечен ли он как спам и прочее).
Таблица wp_comments
Здесь хранятся оставленные комментарии к записям, аналог параметров из вкладки «Комментарии» в панели управления сайтом.
Здесь можно перенести например комментарий с одной страницы на другую.
Таблица wp_links
Здесь хранятся ссылки, аналог параметров из вкладки «Ссылки» в панели управления сайтом.
Таблица wp_options
Таблица настроек WordPress, аналог параметров из вкладки «Настройки» в панели управления сайтом, а также в ней содержаться параметры установленных плагинов.
Таблица wp_postmeta
Содержит огромное количество информации о записях и статичных страницах блога: информацию о прикрепленных файлах (изображения, видео и прочие), данные заполняемых полей при создании или редактировании постов. В их число также входят поля, которые появляются после установки различных плагинов. Например, содержимое полей Title, Description, Keywords плагина All in One SEO Pack хранится именно в таблице wp_postmeta.
Таблица wp_posts
Таблица контента. В таблице хранятся данные о том, кто автор статьи, дата создания записи, сам текст, название страницы, статус записи (опубликовано, черновик, на утверждении), открыто или нет комментирование, сколько оставлено комментариев, пинги и еще очень много всевозможной информации. Вот лишь малая часть столбцов из таблицы:
Таблица wp_terms
Таблица содержит категории, теги и ссылки.
Таблица wp_term_relationships
Здесь описывается ассоциативная связь записей с категориями и тегами. Таблица содержит строки с id записями и соответствующими им id рубриками и тегами.
wp_term_taxonomy
Эта таблица связывает между собой категории, ссылки блогролла и теги воедино, а также устанавливает очередность и вложенность категорий (рубрик). Ведь рубрики могут быть родительскими и дочерними, вот таблица wp_term_taxonomy и отслеживает иерархию между ними.
Таблица wp_usermeta
Эта таблица содержит дополнительную информацию о зарегистрированных пользователях, их личные настройки и заполнение профиля своими данными, такими как цветовую схему консоли администрирования, контактные данные, биографию, никнейм и другие.
Таблица wp_users
Она содержит список зарегистрированных пользователей, их логин и пароль в зашифрованном виде, e-mail адрес, дату регистрации и еще парочку сведений.
Плагин WP-Optimize.
Далее предлагаю вам плагин WP-Optimize, позволяющий произвести некоторые операции по очистке и оптимизации базы данных.
Количество скачиваний по данным wordpress.org: 248,586 .
После установки у вас появиться вкладка WP-Optimize, как на скрине ниже:
В настройках плагина всего 5 пунктов, для того чтобы активизировать любой из них, необходимо поставить галочку напротив него и нажать кнопку PROCESS.
1-ый пункт: Удаляет все ревизии записей (внизу под надписью пишется количество имеющихся у вас ревизий). Что такое ревизии записей? Каждый раз, когда вы пишите ваш пост или страницу, система wordpress создает так называемые ее ревизии, то есть автосохранения (то же самое происходит и во всеми известном текстовом редакторе Microsoft Word), чтобы если вдруг у вас выключится компьютер или пропадет интернет, вы могли восстановить не законченную вами запись или страничку. Ревизии также создаются при нажатии вами кнопки «Сохранить черновик». Для того, чтобы увидеть эти самые ревизии достаточно зайти в запись или страничку, вызвать «Настройки экрана» — вкладка в верхнем правом углу и поставить галочку на пункте «Ревизии», тогда у вас под редактором записи или странички появится окошко Ревизии.
2-ой пункт: Удалить все автоматически сохраненные черновики (внизу под надписью пишется количество имеющихся у вас авто черновиков).
3-ий пункт: Удалить спам в комментариях (внизу под надписью пишется количество имеющихся у вас спамовых комментариев).
4-ый пункт: Удалить неподтвержденные комментарии (внизу под надписью пишется количество имеющихся у вас неподтвержденных комментариев).
5-ый пункт: Называется оптимизировать таблицу базы данных. С помощью данного пункта плагин сжимает те таблицы базы данных, в которых есть «пустые места», уменьшая тем самым размер самих таблиц.
Таблицы, которые можно сжать, отмечены красным цветом в таблице внизу, так же там показано какое пространство освободиться после ее оптимизации.
Вот и все настройки.
SQL запросы или хаки WordPress
Чтобы редактировать базу данных в WordPress используются так называемые SQL запросы.
Для того, чтобы создать SQL запрос необходимо войти в Базу Данных, для этого заходим на наш хостинг, ну например hostinger.ru, далее заходим в свой аккаунт, в окошке ДОПОЛНИТЕЛЬНО выбираем ярлычек phpMyAdmin и входим в него, для этого вас попросят ввести пароль от базы данных. Вы увидите следующее:
Далее выбираем вкладку SQL и видим следующее:
Все вот в это пустое окошко и нужно вводить необходимые SQL запросы, а теперь перейдем непосредственно к самим SQL запросам и хаком для WordPress.
Внимание! Перед тем как экспериментировать над своей Базой Данных создайте ее резервную копию, это делается просто, достаточно в phpMyAdmin нажать на вкладку ЭКПОРТ и нажать ОК, и сохранить файл вашей Базы Данных. Для того, чтобы восстановить свою Базу Данных необходимо в phpMyAdmin сначала удалить неправильную базу данных (во вкладке СТРУКТУРА ставим галочки перед всеми таблицами и выбираем удалить), а затем нажать на вкладку ИМПОРТ, выбрать файл Базы Данных через кнопку «Обзор», сохраненном на вашем компьютере и нажать ОК.
Примеры SQL-запросов.
Изменяем пароль блога
Для этого используем следующий запрос:
UPDATE 'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1;
Остальные интересные примеры SQL-запросы вы можете найти по ссылке:
http://wordpressinside.ru/tips/sql-queries1/
http://wordpressinside.ru/tips/sql-query2/
В них приведены следующие примеры:
— Меняем автора поста wordpress;
— Удаляем ревизии постов и их мета данные;
— Пакетное удаление спам комментариев;
— Находим неиспользуемые теги;
— Поиск и замена данных;
— Получение списка Email ваших комментаторов;
— Отключить все wordpress плагины сразу;
— Удаляем все теги;
— Отобразить пустые мета данные;
— Запретить комментирование в старых постах;
— Заменить ссылку в комментарии;
— Заменяем email комментатора;
— Удаляем комментарии со специфической ссылкой.
mnogoblog.ru
База данных WordPress изнутри » Темы и Плагины для Wordpress
WordPress, как и большинство других современных систем управления контентом, активно использует базу данных. Вся информация хранится в ней — настройки блога, записи, комментарии, ссылки, информация о пользователях и т.д. Поэтому необходимо понимать, как база организована, какие типы данных в ней хранятся, и как разные вещи взаимодействуют друг с другом.
Перед тем, как мы займёмся детальным изучением структуры базы, я хочу обратить Ваше внимание на три следующих момента:
1. WordPress API предоставляет некоторые возможности для управления данными без прямого обращения к базе. Поэтому, с технической стороны, Вам не нужно знать, как база данных организована. Но если Вы имеете об этом представление, возможно, Вы найдёте решения, которые будут более быстными и эффективными для достижения поставленной цели.
2. Структура базы данных WordPress проста и удобна. Бояться нечего. Она состоит всего из 10 таблиц с несколькими полями в каждой. После беглого ознакомления структура останется в Вашей памяти.
3. Структура базы данных WordPress хорошо документирована.
wp_posts
WordPress используется в основном как система управления контентом (CMS). Поэтому, на мой взгляд, таблица с контентом имеет основное значение. Страницы, записи, аттачменты, все это — контент, всё это WordPress хранит в одной таблице — wp_posts.
В действительности аттачменты хранятся как есть — в виде файлов на диске, но WordPress использует таблицу wp_posts для хранения мета-информации об аттачментах (например ID пользователя, который его загрузил, ID записи, которая ссылается на аттачмент, время загрузки и т.п.).
Страницы, записи и аттачменты могут быть очень похожи друг на друга, а могут сильно отличаться. Сначала мы рассмотрим, что общего между ними. Все три вида контента имеют уникальный идентификатор — ID (обычно создаётся автоматически WordPress’ом или MySQL), автора (человек, который написал запись или загрузил файл), дату, название (заголовок), и описание (даже если это поле пустое, его можно будет заполнить позже). Все три вида имеют URL. Итак, для каждой записи, страницы или аттачмента имеется запись в таблице wp_posts.
Теперь поговорим о различиях между ними. Чтобы отличить один тип контента от другого, в таблице wp_posts существует поле post_type. Для записей его значение — ‘post’, для страниц — ‘page’, для аттачментов — ‘attachment’.
Сущещствует некоторое количество специальных полей. Например, поле post_mime_type используется для хранения типа файла аттачмента (‘image/jpeg’ и ‘application/pdf’). Поле menu_order содержит порядковый номер отображения страницы в списке. Поле post_parent используется для организации страниц с “подстраницами”, а так же для хранения информации о связи аттачмента с записью.
Для того, чтобы понять, как и когда используется то или иное поле, запустите следующие запросы (для каждого типа контента):* SELECT * FROM wp_posts WHERE post_type = ‘post’ LIMIT 1* SELECT * FROM wp_posts WHERE post_type = ‘page’ LIMIT 1* SELECT * FROM wp_posts WHERE post_type = ‘attachment’ LIMIT 1
В этой же таблице находится информация о состоянии записи/страницы. В большинстве случаев Вы увидите ‘publish’ для опубликованных записей, ‘draft’ для черновиков, и ‘inherit’ для аттачментов. С остальными состояниями Вы без проблем разберетесь сами.
Вот несколько примеров того, как может быть использована таблица wp_posts:
* Получение статистики — сколько записей вы всего написали, сколько записей написал тот или иной автор, какое количество записей публикуется в среднем за день и т.д.* Создать список всех аттачментов.* Создать галерею картинок для каждой записи (hint: “WHERE post_type = ‘attachment’ AND (post_mime_type = ‘image/jpeg’ OR post_mime_type = ‘image/gif’ OR post_mime_type = ‘image/png’)“).
wp_postmeta
Существует миллион вещей, которые Вы, возможно, захотите проассоциировать со своей записью: Ваше настроение, название песни, которую Вы слушали, географическое местоположение, список ссылок на похожие записи, специфичную информацию для поисковых машин, и т.д. и т.п. Всё это хранится в таблице wp_postmeta.
Структура этой таблицы очень простая и гибкая. Она имеет всего четыре поля: meta_id, post_id, meta_key и meta_value. meta_id создаётся автоматически, и я не вижу ни одной причины, по которой его нужно было бы менять вручную. post_id соответствует ID записи (в таблице wp_posts), о которой эта мета-информация. meta_key — это краткое описание мета-информации, которую Вы хотите добавить к записи (например ‘mood’ или ’song’). meta_value — это непосредственно значение мета-информации (например “хуевастенько” для ‘mood’).
WordPress использует эту таблицу для хранения дополнительной информации об аттачментах, которая не может быть сохранена в таблице wp_posts (локальные пути к файлу, информация о превьюшках и т.д.). Также в этой таблице содержатся специфические поля или значения — те, которые вы видите в редакторе. И, конечно, существует огромное количество плагинов, которые используют эту таблицу для своих нужд. Итак, если Вы решили использовать эту таблицу, Вам нужно придумать уникальные имена для Ваших “мета-ключей”, в противном случае Ваш плагин может конфликтовать с другими.
wp_users
WordPress использует эту таблицу для хранения информации о зарегистрированных пользователях. В ней содержатся ID пользователей, их логин, зашифрованный пароль, полное имя, дата регистрации, и многое другое.
wp_usermeta
Для пользователей таблица wp_usermeta является тем же самым, чем является wp_postmeta для записей (контента). В ней содержится вся дополнительная информация о пользователях — персональные настройки (вкл./выкл. визуальный редактор, день рождения, контактная информация и т.п.).
wp_comments
В таблице wp_comments хранятся все комментарии к записям на вашем сайте, включая подтвержденные, ожидающие модерации, спам, трэкбэки, пингбэки, посланные Вам с других сайтов. О предназначении полей этой таблицы Вы можете догадаться и сами, но в любом случае, вот их краткое описание:
* comment_ID — уникальный ID для каждого комментария, создаётся автоматически MySQL* comment_post_ID — уникальный ID записи, к которой комментарий был добавлен* comment_author — имя автора комментария* comment_author_email — email автора комментария* comment_author_url — URL автора комментария* comment_author_IP — IP-адрес автора комментария* comment_date — дата и время добавления комментария* comment_content — текст комментария* comment_approved — прошёл ли комментарий модерацию и если да, то как* comment_agent — браузер автора комментария (MSIE, Firefox, Safari и т.д.)* comment_type — обычный комментария, трэкбэк, пингбэк* user_id — ID автора, если он зарегистрированный пользователь
Есть еще несколько полей, но они нам вряд ли понадобятся, поэтому мы оставим их описание за кадром.
wp_options
Таблица wp_options содержит все глобальные настройки WordPress. Она довольно похожа на таблицы wp_postmeta и wp_usermeta по структуре, но есть и различия.
В этой таблице есть поле blog_id, но используется оно только в WordPress MU (большая часть кода однопользовательской и многопользовательской инсталляций WordPress совпадают). WordPress MU использует это поле для того, чтобы отличить настройки одного блога от настроек другого.
Поле autoload определяет — загружаются/записываются ли настройки из базы данных/кэша или они доступны только для чтения. Большинство настроек загружаются автоматически.
wp_categories
Таблица wp_categories содержит информацию обо всех категориях, которые Вы создали, это: название и описание категории, ID родительской категории и т.д.
Для ускорения работы WordPress сохраняет некоторую статистику. Например, количество записей и ссылок в категории пересчитывается каждый раз при их добавлении или удалении (поля category_counter и link_count).
wp_post2cat
Связывание записи с категорией осуществляется через таблицу wp_post2cat. Это стандартный подход для связи “многих-со-многими” в реляционных базах данных. wp_post2cat имеет только три поля: уникальный ID (для строки в таблице, создаётся автоматически), уникальный ID записи и ID категории, в которую добавлена запись.
wp_links
Обычно таблица wp_links используется для хранения блогролла, списка ссылок на другие сайты или блоги. Настроек для блогролла огромное количество, поэтому подробно рассматривать эту таблицу мы не будем. Скажу только одно: если Вам вдруг вздумается создать на основе WordPress каталог ссылок, например новый Yahoo!, Вам не придётся много программировать. По сути нужно только будет создать “кустомную” тему.
wp_link2cat
Таблица wp_link2cat практически идентична wp_post2cat, за исключением того, что в ней содержатся ID ссылок вместо ID записей.
[Источник на английском]
Взято с [delete yourself]
Мой блог находят по следующим фразам
wp-skins.info
Понимание и работа с данными в WordPress. Часть 1. Введение
Данная статья является переводом первой статьи Rachel McCollin из цикла о данных в WordPress. В ней по полочкам разложена структура данных, типы контента и их взаимосвязь в WordPress. Будет полезна в первую очередь новичкам, но и профессионалы могут найти для себя что-либо новое.
Сайт на WordPress состоит из трех основных элементов:
- Сама установка WordPress
- Содержимое каталога wp-content, которое включает темы, плагины и загрузками
- База данных, где хранится контент в виде данных.
Большинство пользователей WordPress никогда не работают с базой данных напрямую. Они могут быть даже не в курсе, что она постоянно работает, чтобы обеспечить работу их сайт. Когда WordPress показывает любую страницу, то он соединяется к базой данных, чтобы показать контент, который добавили авторы на сайт.
В этой серии статей будет детально рассмотрены аспекты базы данных WordPress. Эта серия состоит из девяти частей:
- Вступление (сейчас вы читаете именно его)
- Взаимосвязи между данными
- Типы контента
- Пользовательские данные
- Метаданные
- Таксономии, категории, метки и термины
- Таксономии VS метаданные
- Таблица опций
- Данные WordPress Multisite
В этом статье рассматриваются таблицы базы данных и как они относятся с типами контента. Данные типы контента используются для работы в WordPress и определяют что, как и где должно храниться.
Типы контента в WordPress
Прежде чем разбирать данные хранящиеся в базе WordPress, рассмотрим типы контента. Существуют такие стандартные типы контента:
- Записи (posts)
- Страницы (pages)
- Пользовательские типы записей (custom post types)
- Вложения (attachments)
- Ссылки (links)
- Элементы меню (navigation menu items)
Эти типы контента имеют такие данные:
- Категории (categories)
- Метки (tags)
- Пользовательские таксономии (custom taxonomies and terms)
- Метаданные (post metadata)
Кроме того существует типы контента, хранящиеся в ином виде:
- Виджеты (widgets)
- Опции (options)
- Пользователи (users)
- Сайты для MU WordPress
- Нестандартный контент (hardcoded content), который добавляют некоторые темы/плагины.
- Сторонний контент (third party content) (например RSS)
Все эти типы контента хранятся в таблицах базы данных или в файлах настроек тем/плагинов. Каждый тип может быть представлен как отдельной записью в таблице, так и её частью. Кроме, того они могут быть связаны с данными в других таблицах. Например, данные о записях связаны с данными о пользователях, так что WordPress знает, кто является автором, какой записи.
Структура базы данных WordPress
WordPress использует несколько взаимосвязанных таблиц. Между ними установлены связи один ко многим. Например, к одной странице может быть много комментариев. Приведенная ниже диаграмма взята из кодекса WordPress. На ней показаны таблицы и связи между ними:
Большинство таблиц связаны с одной или несколькими другими с помощью одного поля. Это поле будет уникальным идентификатором для каждой записи (пример post_id). Более подробно для каждой таблицы:
wp_posts | Записи, страницы, вложения, редакции, пользовательские записи | wp_postmeta через post_idwp_term_relationships через post_id |
wp_postmeta | Метаданные записей, страниц и т.д. | wp_posts через post_id |
wp_comments | Комментарии | wp_posts через post_id |
wp_commentmeta | Метаданные комментариев | wp_comments через comment_id |
wp_term_relationships | Связи между таксономиями и записями, страницами и т.д. | wp_posts через post_idwp_term_taxonomy через term_taxonomy_id |
wp_term_taxonomy | Таксономии (включая категории и метки) | wp_term_relationships через term_taxonomy_id |
wp_terms | Ваши категории, метки и термины пользовательских таксономий | wp_term_taxonomy через term_id |
wp_links | Ссылки в вашем блоке (как правило, сейчас не используется) | wp_term_relationships через link_id |
wp_users | Пользователи | wp_posts через post_author |
wp_user_meta | Метаданные для каждого пользователя | wp_users через user_id |
wp_options | Опции и настройки сайта(устанавливаются в админке на странице настроек и в темах/плагинах) | Отсутвуют |
Стоит отметить несколько вещей:
- Таблицы базы данных по умолчанию имеют префикс wp_. Вы можете его изменить (например, при установке).
- Таблица wp_posts является самой важно. Именно в ней храниться большинство данных.
- Только одна таблица не связанна с другими — таблица wp_options. В ней хранятся данные о сайте и настройках WordPress, которые не имеют отношения к записям или пользователям.
- Две таблицы используются для хранения данных о таксономии. Об это будет отдельная статья.
- В таблицах wp_users и wp_comments данные не связаны. В настройках WordPress можно указать, что только зарегистрированные пользователи могут оставить комментарий. Не смотря на это, WordPress не хранит связи о комментариях и пользователе, который их отправил.
- WordPress MU иметь некоторые дополнительные таблица. Их рассмотрение выходит за рамки данной статьи.
Связь контента и таблиц базы данных
Ознакомившись с типами контента в WordPress и таблиц базы данных, используемых для их хранения, можно провести между ними соотвествие. В приведенном ниже перечне показано, какие таблицы базы данных используется для хранения какого типа контента.
Записи (posts) | wp_posts |
Страницы (pages) | wp_posts |
Пользовательские типы записей (custom post types) | wp_posts |
Вложения (attachments) | wp_posts |
Ссылки (links) | wp_links |
Элементы меню (navigation menu items) | wp_posts |
Категории (categories) | wp_terms |
Метки (tags) | wp_terms |
Пользовательские таксономии (custom taxonomies) | wp_term_taxonomy |
Термины пользовательских таксономий (custom terms) | wp_terms |
Метаданные (post metadata) | wp_post_meta |
Виджеты (widgets) | wp_options |
Опции (options) | wp_options |
Пользователи (users) | wp_users |
Нестандартный контент (hardcoded content) | wp_posts (если добавлен к записям)wp_options (если добавлен к виджетам)Файлы тем/плагинов |
Стороний контент (third party content) | wp_posts (если добавлен к записям)wp_options (если добавлен к виджетам)Файлы тем/плагинов |
Легко заметить, что не все таблицы используются в перечне. Так происходит потому, что некоторые из них используются для хранения метаданных. Другие используются для хранения связей. Оба варианта будут рассмотрены в последующих статьях.
Заключение
Надеюсь, что теперь вы лучшее понимаете, как и где WordPress хранит различные типы данных, как использует базу данных. Более подробно элементы этого процесса будут рассмотрены в последующих статьях. Так в следующей статье будут рассмотрены взаимосвязи между данными. А так же мы остановимся более подробно на том, как конкретные таблицы связаны и как некоторые из них используются исключительно для хранения данных об взаимосвязях.
Источник — http://habrahabr.ru/post/233479/
denis-creative.com
Логика работы с таблицей wp_options в WordPress » Onwp.ru
В этой части я пролью свет на таблицу, которая отличается от остальных – таблицу wp_options. Как вы можете заметить из диаграммы, приведенной ниже, это – единственная таблица, которая находится сама по себе.
В таблице опций хранятся различные типы данных из других таблиц: вместо того чтобы хранить данные о контенте (содержимом) вашего сайта, она хранит данные о самом сайте. Данные записываются в таблицу опций при помощи API параметров (опций) или API настроек, оба из которых состоят из набора функций для добавления, изменения или удаления из этой таблицы.
Вы можете добавлять значения к существующим опциям, а также новые записи, когда захотите создать новую опцию.
В этом руководстве я рассмотрю различные аспекты таблицы опций и возможности вашего взаимодействия с ней:
- Доступ к таблице wp_options
- Структура таблицы wp_options
- Заполнение таблицы wp_options
- API параметров
- API настроек
Я всего лишь дам обзор API (интерфейс программирования приложений) и покажу, как они взаимодействуют с таблицей опций; если вы хотите изучить это глубже, прочитайте серии, посвященные API настроек Тома МакФалина.
Доступ к таблице wp_options
Так как таблица wp_options хранит данные, которые связаны с установкой и администрированием сайта, как единого целого, доступ к ней ограничен. Чтобы иметь возможность исправлять опции и настройки, пользователям понадобится возможность manage_options (управление опциями). Единственная роль для пользователя, имеющая по умолчанию эту возможность – это роль администратора (и в Мультисайте роль администратора сети).
Это означает, что если вам нужно добавить опцию, к которой нужен доступ для других типов пользователей, вам придется назначить им возможность manage_options. Это несет за собой риск, поэтому делайте это только в том случае, если абсолютно уверены.
Структура таблицы wp_options
Таблица опций имеет схожую структуру с тремя таблицами метаданных. У нее четыре поля:
- Option_ID (ID опции)
- Option_name (Имя опции)
- Option_value (Значение опции)
- Autoload – указывает, загружается ли опция автоматически, на каждой загрузке страницы – по умолчанию имеет значение «да» при установке одного сайта, и значение «нет» в Мультисайте.
Каждая запись в поле option_name должна иметь уникальное значение: если вы добавляете более одного значения для опции, WordPress хранит это в массиве, в поле option_value. Хорошим примером является опция activate_plugins, которая хранит массив плагинов, активированных на вашем сайте.
Когда вы добавляете, редактируете или удаляете данные в таблице wp_options, вы должны всегда указывать option_name, как я вам покажу позже в данном руководстве.
Заполнение таблицы wp_options
Таблица wp_options заполняется данными с одного из трех источников:
- Экраны настроек по умолчанию
- Экраны опций темы
- Экраны настроек и опций, которые вы добавили с помощью плагинов
Существует ряд опций, встроенных в WordPress – вы можете их все увидеть в Справочнике Параметров. Но вы также можете создать свою опцию.
Чтобы создать новые опции в своей теме или плагине, вы можете использовать API параметров или API настроек. Я расскажу об этом поподробнее ниже.
Использование API параметров
API параметров состоит из восьми функций, которые позволяют вам добавлять, получать, обновлять или удалять опции:
Функция | Параметр | Примечания |
Add_option() | $option,$value,$deprecated,$autoload | Требуется только $option. Если уже есть запись с параметром $option, таким же как значение поля $option_name, WordPress добавит ваш параметр $value в массив, в поле option_value этой записи, в противном случае он создаст новую запись. |
Delete_option() | $option | Удаляет все поля для данной опции. |
Get_option() | $option,$default | $default (необязательно) – значение по умолчанию для возврата, если в базе данных напротив опции не хранится никаких значений. |
Update_option() | $option,$new_value | $new_value – значение, которое заполнит поле option_value |
Add_site_option() | $option,$value | Аналогично add_option(), но добавляет опцию для всей сети в Мультисайте (т.е. параметр хранится в таблице wp_options, а не в таблице wp_XX_options, где ХХ – ID сайта), $autoload не включена, как опция сайта, не загружается в Мультисайте и это не может быть перезаписано. |
Delete_site_option() | $option | То же самое, что и delete_option(), но работает для всей сети в Мультисайте |
Get_site_option() | $option,$default,$use_cache | Аналогично get_option(), но извлекает опцию для всей сети в Мультисайте |
Update_site_option() | $option,$value | Идентично update_option(), но работает для всей сети в Мультисайте |
Обратите внимание, создаете ли вы опции с использованием API параметров или API настроек, вы можете создавать записи без какого-либо значения в поле option_value. Это позволяет администраторам сайта заполнить это поле позже.
Использование API настроек
Так же хорошо, как и API параметров, вы можете использовать API настроек, чтобы взаимодействовать с данными в таблице wp_options. API настроек позволяет вам создавать настройки, которые администраторы сайта могут использовать для добавления или обновления данных в таблице опций – это добавляет пользовательский интерфейс в ваши опции.
API настроек больше, чем API параметров, поэтому я не расскажу о них здесь детально, но, в принципе, у них есть три элемента:
- Настройка (данные в таблице wp_options)
- Поле (которое используется для добавления или редактирования данных)
- Раздел настроек, который является группой связанных полей.
Две функции в API настроек, которые взаимодействуют непосредственно с таблицей wp_options следующие:
Функция | Параметры | Примечание |
register_setting () | $option_group, $option_name, $sanitize_callback | Параметр $option_name ссылается на поле option_name в таблице wp_options; другие параметры взаимодействуют с другими функциями в API настроек. |
unregister_setting () | $option_group, $option_name, $sanitize_callback | Вычеркивает настройки из списка в таблице wp_options; обычно используется с хуками деактивации для тем и плагинов. |
Эти функции не добавляют значений в опции таблицы wp_options, но они создают настройки, которые впоследствии могут содержать значения, добавленные в них с использованием других функций API настроек.
Итог
Таблица wp_options уникальна среди остальных таблиц базы данных WordPress тем, что она не использует связи с какой-либо из таблиц. Это из-за того что в ней хранятся данные о сайте или о сети, а не о контенте. Чтобы взаимодействовать с таблицей опций, вы можете использовать функции в API параметров или API настроек, а также функции, добавляющие данные по всей сети в пределах Мультисайта.
В финальной части этой серии я рассмотрю Мультисайт, так как он использует несколько дополнительных таблиц базы данных, которые не были пока рассмотрены в этой серии; Мультисайт также создает несколько копий каждой из основных таблиц, по одной на каждый сайт.
Источник: code.tutsplus.com
onwp.ru
База данных WordPress - структура таблиц
Новости
Где купить чехол на телефонВ наше время практически у каждого человека есть мобильный телефон, а молодое поколение стремится приобрести новые модели, особенно славятся среди молодежи айфоны! Подчеркнуть свою индивидуальность
Брендинговое агентство Бренд- это нечто большее, чем раскрученное название и логитип. Почему мы покупаем дороже брендовые вещи? Да потому что они гарантируют качество, уважение. Мы уже более 10 лет занимаемся созданием брендов. Нейминг Как говорится в известном анимационном фильме-как вы яхту назовете, так она и поплывет. По сути, это перефразированная в поэтической форме давно известная истина о прямом влиянии имени или названия того Бытовые кондиционеры На сегодняшний день на украинском рынке существует такое разнообразие климатического оборудования, что вопрос « как выбрать кондиционер» может занять слишком много времени на Зипс Звукоизоляция почему то не является приоритетом при строительстве даже жилья премиум класса, поэтому эту проблему приходиться решать владельцам самостоятельно. Раньше проблему звукоизоляции решали просто- Soundguard Надоел шум соседей? Не хотите слушать музыку из-за стены? Выход есть. Звукоизоляционные панели soundguard. Почему стоит покупать такие панели? Потому что это инновационный материал, свойства которого Зеленые методы от А до Я (SEOquick 2018) Начиная или развивая свой бизнес, предприниматель должен решать множество вопросов, каждый из которых прямо влияет на успешность будущих проектов. То есть можно смело сказать, что забот (особенно в первое Форму бровей Сейчас, наверное, нет такой женщины, которая бы не корректировала и не изменяла свои брови. До того как подобрать идеальную форму бровей, приходится немало потрудиться, поэкспериментировать. Для того Провести интернет Услуги спутникового интернета для частного дома, особенно востребованные в удаленных населенных пунктах, само ПАО «Ростелеком» в данный момент не предоставляет. В этой нише работает одна из его дочерних Как избавится от пагубной зависимости от соцсетей Лайфхак по цифровому детоксу для лечения интернет-зависимости, которой вы страдали весь предыдущий год. По данным опроса Marist, около половины американцев хотели бы в наступившем году избавиться отallfacebook.com.ua
База данных WordPress сайта | IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.
Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем разговор о создании блога на WordPress. И сегодня мы поговорим о базе данных WordPress. Разберемся с сервером баз данных, который используется движком WordPress, какой тип движка использует база данных WordPress. Поговорим немного о таблицах базы данных WordPress, и на конец, мы рассмотрим структуру каждой таблицы.
База данных WordPress сайта
Для чего необходимо знать архитектуру базы данных этой системы управления сайтами? Как минимум, для общего развития. Большинству пользователей WordPress эта информация может показаться излишней и не нужной: простые посетители сайтов вряд ли заинтересуются этим вопросам, многие вебмастера, которые используют WordPress, не представляют себе то, как он работает изнутри, поэтому ставят кучу ненужных плагинов и расширений. Начинающим веб-разработчикам, использующим WordPress, как платформу для создания сайтов и блогов, информация из этого поста может показаться очень полезной и нужной.
data-ad-client="ca-pub-7858226296650173"data-ad-slot="1462109342">
Особенности работы базы данных WordPress
Содержание статьи:
И так, для начала следует сказать, что оригинал статьи на английском языке вы сможете найти на сайте кодекса WordPress. Ссылку была дана в статье, в которой писал про создание WordPress шаблона. Сразу скажу, что перевод статьи о базе данных WordPress не дословный, а вольный. Приступим.
Любому начинающему разработчику WordPress необходимо ознакомиться с двумя вещами: с технической документацией WordPress и с особенностями архитектуры базы данных, как минимум, для того чтобы уметь создавать сложные WordPress шаблоны и простенькие плагины, сегодня мы познакомимся с архитектурой базы данных сайта на WordPress.
Первое, что следует сказать: в качестве системы управления базами данных WordPress использует MySQL сервер версии 5.0.15 и выше (внимание: эта информация актуальна на момент написания публикации). Как я уже говорил: конечному пользователю информация о БД WordPress навряд ли когда-то пригодится, многим разработчикам для создания тем и плагинов WordPress будет достаточно набора функций WordPress для работы с базами данных, но иногда бывают ситуации, когда API WordPress недостаточно.
То есть, иногда возникает потребность обращаться к базам данных напрямую. Поэтому требуется информация о том, как WordPress хранит свои данные и какие есть зависимости и ограничения между таблицами базы данных WordPress. Чтобы обратиться к базам данных WordPress напрямую, следует использовать WPDB класс, но об этом не здесь. Перейдем к рассмотрению схемы и структуры базы данных WordPress.
Структура базы данных WordPress сайта
Ниже вы можете увидеть структуру базы данных WordPress, а также отношения и зависимости между таблицами базы данных. Обратите внимание: такую архитектуру база данных WordPress имеет при начальной установки без плагинов и расширений. База данных WordPress насчитывает 11 таблиц и 9 связей между таблицами: шесть не идентифицирующих и три идентифицирующих.
Архитектура базы данных WordPress
Обратите внимание: при стандартной установки WordPress целостность данных в базе данных обеспечивается не полностью, например, между записями вашего блога и комментариями. Если вы создаете сложный шаблон, плагин или расширение WordPress, то нужно самостоятельно заботиться о поддержании целостности данных в базе данных. Также не забывайте делать резервные копии базы данных WordPress, перед тем, как попытаетесь вносить изменение вручную.
Таблицы WordPress, откуда брать данные
Далее мы кратко рассмотрим все таблицы базы данных WordPress, обратите внимание: эта информация актуальна только для WordPress без расширений и плагинов, так как некоторые модули WordPress способных изменять, как архитектуру базы данных, так и содержимое некоторых таблиц.
wp_commentmeta | Характеристики каждого комментария хранятся в таблице wp_commentmeta | Админка WP -> Комментарии |
wp_comments | WordPress комментарии хранятся в таблице wp_comments | Админка WP ->Комментарии |
wp_links | В таблице wp_links хранятся данные о ссылках WordPress | Админка WP -> Ссылки -> Добавить новую Админка WP -> Ссылки -> Ссылки |
wp_options | Настройки WordPress хранятся в таблице wp_options | Админка WP -> Настройки -> Общие Админка WP -> Настройки -> Написание Админка WP -> Настройки -> Чтение Админка WP -> Настройки -> Обсуждение Админка WP -> Настройки -> Приватность Админка WP -> Настройки -> Постоянные ссылки Админка WP -> Настройки -> Виджеты |
wp_postmeta | Характеристики каждой WordPress статьи находятся в таблице wp_postmeta. Некоторые плагины могут добавлять сюда собственную информацию | Админка WP -> Сообщения -> Добавить новое Админка WP -> Страницы -> Добавить новую |
wp_posts | В таблице wp_posts хранится вся основная информация сайта: навигационное меню, тексты статей и страниц, и пр. | Админка WP -> Сообщения Админка WP -> Страницы Админка WP -> Сообщения -> Добавить новое Админка WP -> Страницы -> Добавить новую Админка WP -> Медиа -> Добавить новую Админка WP -> Медиа -> Библиотека Админка WP -> Оформление -> Меню |
wp_terms | Категории для постов, тэгов и ссылок хранятся в этой таблице | Админка WP -> Сообщениия -> Тэги Админка WP -> Сообщениия -> Категории Админка WP -> Ссылки -> Ссылки категорий |
wp_term_relationships | Данная таблица предназначена для хранения ассоциаций в WordPress | Админка WP -> Сообщениия Админка WP -> Страницы -> Добавить новую Админка WP -> Страницы |
wp_term_taxonomy | В этой таблице хранится информация о таксономии WordPress. Меню категорий, ссылок и тэгов. Данные используются для записи в таблицу wp_terms. | |
wp_usermeta | Мета-данные о пользователях WordPress хранятся в таблице wp_usermeta | Админка WP -> Пользователи |
wp_users | Список бользователей WordPress хранится в таблице wp_users | Админка WP -> Пользователи |
Поля WordPress таблиц, идексы, ограничения и связи базы данных WordPress
Приведем подробное описание WordPress таблиц и связей между таблицами WordPress.
Описание таблицы wp_commentmeta базы данных WordPress
//
//
Индексы таблицы wp_commentmeta базы данных WordPress
Описание таблицы wp_comments базы данных WordPress
Индексы таблицы wp_comments базы данных WordPress
Описание таблицы wp_links базы данных WordPress
Индексы таблицы wp_links базы данных WordPress
Описание таблицы wp_options базы данных WordPress
Индексы таблицы wp_options базы данных WordPress
Описание таблицы wp_postmeta базы данных WordPress
Индексы таблицы wp_postmeta базы данных WordPress
Описание таблицы wp_posts базы данных WordPress
Индексы таблицы wp_posts базы данных WordPress
Описание таблицы wp_terms базы данных WordPress
Индексы таблицы wp_terms базы данных WordPress
Описание таблицы wp_terms_relationships базы данных WordPress
Индексы таблицы wp_terms_relationships базы данных WordPress
Описание таблицы wp_term_taxanomy базы данных WordPress
Индексы таблицы wp_term_taxanomy базы данных WordPress
Описание таблицы wp_usermeta базы данных WordPress
Индексы таблицы wp_usermeta базы данных WordPress
Описание таблицы wp_users базы данных WordPress
Индексы таблицы wp_users базы данных WordPress
Что же, на этом можно будет закончить описание архитектуры базы данных WordPress.
zametkinapolyah.ru