Структура WordPress
Владимир Демянович25.06.2016В этой записи будет собираться информация о структуре WordPress в том или ином смысле. Структуре базы данных и таблиц в базе данных — зачем они и что в них храниться. Структуре папок, какие файлы в них находяться, предназначение этих файлов и каталогов. Список ролей, функций и прочее.
Информацию перенес из записи «WordPress заметки, хитрости и хаки», которая настолько разрослась, что ее нужно уже дробить.
Роли в WordPress
- Администратор (Administrator) — абсолютный доступ к управлению темами, пользователями, плагинами, настройками, страницами, записями, категориями, комментариями, экспорт-импорт контента.
- Редактор (Editor) — редактирование, создание, удаление своего и чужого контента, модерация комментариев, редактирование категорий, удаление, редактирование, публикация своих и чужих страниц, записей, загрузка файлов.
- Автор (Author) — создание, редактирование, публикация и удаление только своего контента — записей. Не может создавать страницы. Имеет права на загрузку изображений, файлов и любых материалов.
- Участник (Contributor) — может добавлять новый контент — запись, без права публикации. Может редактировать и удалять свои черновики. Не может добавлять изображения к записи, только через использование HTML кода, в котором будет ссылка на изображение. Участники могут также видеть записи в консоли.
- Подписчик(Subscriber) — можно разрешить подписчикам видеть приватные записи и страницы без дополнительных плагинов или кода.
Структура таблиц в базе данных wordpress:
- wp_commentmeta – для метаданных комментариев
- wp_comments – комментарии
- wp_links – устарела; хранит информацию, введенную в раздел ссылок WordPress
- wp_options – все, что находится в разделе Параметры панели администратора, хранится в этой таблице, настройки сайта
- wp_postmeta – метаданные записей
- wp_posts – записи, страниц, их ревизии и навигационные пункты
- id — записи, страницы, ревизии
- post_author — id пользователя — автора.
- post_date — дата поста
- post_date_gmt — дата поста в GMT
- post_content — содержимое поста
- post_title — title поста
- post_excerpt – описание поста
- post_status – статус поста: publish, draft, auto-draft, inherit
- comment_status – «open» если комментирование поста разрешено и «closed» если запрещено.
- ping_status
- post_password — пароль для чтения поста, если он защищен паролем
- post_name — алиас поста, который будет использоваться в ЧПУ ссылках.
- to_ping
- pinged
- post_modified — дата последней модификации поста
- post_modified_gmt — дата последней модификации поста в GMT
- post_content_filtered
- post_parent — id родительской записи поста, если родителя нет, то значение 0
- guid – URL записи в виде http://elims.org.ua/?p=id для постов или http://elims.org.ua/category/test/name — для страниц
- menu_order – ноль для поста, порядковый номер страницы, используется для определения порядка вывода страниц
- post_type — тип записи, может быть: post — запись, page — страница, revision — сохраненная версия страницы или записи, attachment — медиа, например страница изображения
- post_mime_type
- comment_count — количество комментариев к посту
- wp_terms – в основном содержит информацию по термам/таксономиям (рубрика, рубрика ссылок, метка, меню)
- term_id — id терма (например категории)
- name — имя терма
- slug — как терм будет писаться в ссылке
- wp_term_relationships – отношения между записями и рубриками, метками и прочими таксономиями
- object_id — id записи, ссылки
- term_taxonomy_id — id рубрики или другого какого-либо терма таксономии (рубрика, рубрика ссылок, метка)
- term_order — используется для сортировки
- wp_term_taxonomy – описывает какого типа тот или иной терм
- term_taxonomy_id — id таксономии
- term_id — id терма
- taxonomy — тип таксономии: category, link_category, post_tag, nav_menu
- parent — родительский терм, если например категория вложена в категорию
- count — количество объектов (записей, ссылок) связанных с таксономией
- wp_usermeta – права пользователей и дополнительная информация о зарегистрированных пользователях
- wp_users – все пользователи
Структура файлов Wordpress
Корневой каталог содержит следующие папки и файлы папки:
- wp-config.php — в этом php файле прописаны имя и пароль базы данных, кодировка, префикс таблиц, язык, размер кеша, в файл можно добавить много других параметров.
- Файл .htaccess — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах.
- wp-includes — ядро wordpress. При каждом обновлении папка перезаписывается.
- wp-admin — CSS, JavaScript и PHP файлы, которые обеспечивают работу админ-консоли. При каждом обновлении папка перезаписывается.
- wp-content — содержит пользовательские папки и состоит из папок:
- languages — содержит файлы перевода движка в формате .mo и .po
- plugins — установленные плагины
- themes — установленные шаблоны, должен быть установлен хотя-бы один шаблон. Может содержать следующие папки и файлы:
- index.php — шаблон главной страницы сайта, также подгружает файл сайдбара. Обязательный файл, в корне папки шаблона
- style.css — обязательный файл, отвечает за css-стили шаблона, в корне папки шаблона
- header.php – файл, отвечающий за вывод данных в разделе <head> и верхнего меню
- sidebar.php – файл отвечает за генерацию боковых (дополнительных) колонок. В основном тут виводятся рубрики, теги, банеры.
- footer.php – файл отвечает за вывод подвала, нижнего меню, копирайтов и закривает HTML-теги
- single.php – отвечает за отображение отдельных постов.
- page.php – отвечает за отображение отдельных страниц (например, «Контактв», «Про нас» и т.д.)
- archive.php – отвечает за вывод страницы архива записпей
- category.php – формирует страницы, которая выводит публикации по категориям
- tag.php – шаблон страницы, которая выводит список публикаций по тегам
- comments.php – файл описывает отображение комментариев
- functions.php – дополнительный файл с PHP-кодом, благодаря которому можно включать или отключать, добавлять или убирать определенный функционал. В этот файл часто добавляется пользовательский код, если нужно что-то усовершенствовать.
- /css/ — в этой папке могут находится дополнительные css-файлы
- /js/ – папка с файлами JavaScript
- /images/ — папка содержит встроенные в шаблон изображения
- /languages/ — папка содержит файлы переводов темы
- uploads — медиа-файлы: изображения, музка, документы и тд.
Теги шаблонов в WordPress
Теги шаблонов — это PHP-функции в WordPress для вывода информации или для настройки блога, например wp_list_pages() — выводит список страниц в виде ссылок.
Удобней по тегам шаблонов читать документацию на официальном сайте wordpress.
В самом wordpress теги шаблонов описаны в следующих файлах:
- wp-includes/author-template.php — теги шаблонов, связанные с автором
- wp-includes/bookmark-template.php — теги шаблонов, связанные с закладками
- wp-includes/category-template.php — теги шаблонов обо всех условиях и таксономии, в том числе категориях и тегах
- wp-includes/comment-template.php — файл для тегов шаблонов отдела комментариев
- wp-includes/link-template.php — теги шаблонов для ссылок (постоянные ссылки, ссылки прикрепления, архивные ссылки и т.д.)
- wp-includes/nav-menu-template.php — теги шаблонов для меню навигации
- wp-includes/post-template.php — теги шаблонов, связанные с постами
- wp-includes/post-thumbnail-template.php — файл для тегов шаблонов, связанных с миниатюрами записей
- wp-includes/general-template.php — файл для других тегов шаблонов, которые могут использоваться где угодно
Понравилось? =) Поделись с друзьями:
Опубликовано в рубрике 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
Основы использования реляционных данных в WordPress
В первой статье из цикла «Данные в WordPress» я привела обзорные сведения об использовании реляционных баз данных в WordPress: какие таблицы используются, и какие данные они хранят. В этой статье я подробнее расскажу о том, как WordPress управляет отношениями между таблицами.
В соответствии с теорией реляционных баз данных, WordPress использует три вида отношений: «один к одному», «один ко многим» и «многие ко многим». Я покажу каждый вид отношения на примере его использования в реальном WordPress-сайте.
Отношение «один к одному» – самый простой вид отношений. Он означает, что данное поле соответствует какому-либо другому единственному полю. Обычно данные, соотносящиеся таким образом, хранятся в одной таблице (хотя бывают и исключения, о которых мы поговорим позже).
Примеры отношений «один к одному»:
- идентификатор публикации и содержимое поста;
- заголовок и текст публикации;
- идентификатор публикации и его слаг;
- идентификатор комментария и содержимое комментария;
- идентификатор пользователя и его имя…
Этот список можно продолжать и дальше, но суть этих примеров, я думаю, уже понятна: отношение любых данных, находящихся в разных полях одной строки таблицы, является отношением «один к одному».
Отношение «один к одному» – наименее интересный вид отношений данных, поэтому давайте рассмотрим следующий тип отношений, который интенсивно используется в архитектуре данных WordPress – «один ко многим».
Отношение «один ко многим» очень часто используется в реальных базах данных. В конце концов, это именно то, что делает RDBMS полезнее, чем «плоские» электронные таблицы. Такое отношение возникает, когда одной записи соответствует несколько других.
В базе данных WordPress отношения «один ко многим» реализуются в виде связи между двумя таблицами с использованием специального уникального идентификатора.
Например, поле post_id является уникальным идентификатором публикации в таблице wp_posts, но оно также используется в таблице wp_comments, чтобы определить, к какой публикации относятся комментарии.
Это означает, что если данное значение поля post_id встречается в wp_posts только однажды, то в wp_comments оно может встретиться несколько раз или не встретиться вообще.
Другие примеры отношения «один ко многим» в WordPress:
- публикация и метаданные публикации;
- публикация и пользователь;
- пользователь и метаданные пользователя;
- таксономия и терм таксономии…
… и так далее. Поскольку отношения «один ко многим» очень важны для функционирования сайта, рассмотрим их немного подробнее.
Таблица wp_posts связана с наибольшим количеством других таблиц, и большинство этих связей являются отношениями типа «один ко многим».
На приведённой ниже диаграмме вы можете видеть, что таблица wp_posts непосредственно связана с четырьмя другими таблицами:
Кроме того, публикации могут быть связаны отношениями «один ко многим» с другими публикациями в форме родительских-дочерних связей либо как вложения.
Рассмотрим эти отношения ещё ближе.
Как я уже говорила, записи, хранящиеся в таблице wp_posts, могут соотноситься по типу «один ко многим» с другими записями этой же таблицы. Это, однако, отношения не между тем, что мы привыкли называть постами, а между публикацией и вложениями либо между разными страницами. Вложения и страницы относятся к тому же типу данных, что и посты.
Вложение, хранящееся в таблице wp_posts, имеет поле post_parent, в котором хранится идентификатор публикации, в которую вложено это вложение. (Простите за тавтологию).
Это типичный пример отношений «один ко многим», потому что вложение может быть вложено только в один пост, в то время как пост может иметь сколько угодно вложений.
Это относится и к тому случаю, когда вы используете медиа-менеджер, чтобы добавить медиафайл к публикации: поле post_parent будет ссылаться на тот пост, в который этот файл был вложен впервые.
Те же отношения возникают между публикациями, представляющими собой страницы сайта. В этом случае в поле post_parent данной страницы так же хранится post_id той страницы, которая на неё ссылается.
Это тоже типичный случай отношений «один ко многим», так как одна страница может иметь сколько угодно дочерних страниц, но страница верхнего уровня для данной страницы может быть только одна.
Говоря об отношениях между публикациями, важно помнить, что публикация – это не только то, что выглядит для посетителя сайта как публикация. Публикациями являются также страницы, вложения и другие типы данных, хранящихся в таблице wp_posts.
Метаданные публикаций хранятся в специальной таблице wp_postmeta. Эта таблица имеет всего 4 колонки: идентификатор публикации (post_id), идентификатор элемента метаданных (meta_id), ключ и значение.
Публикация может иметь любое количество метаданных, но каждый элемент метаданных может относиться только к одной публикации.
Комментарии также хранятся в отдельной таблице под названием wp_comments. Каждый комментарий относится к определённому посту, в то время как пост может иметь любое количество комментариев. Таблица комментариев имеет поле, хранящее идентификатор публикации. Это поле называется comment_post_id и связано с полем post_id таблицы wp_posts.
Таблица комментариев довольно обширна: она имеет по умолчанию 15 полей и хранит данные об авторе комментария, способе связи с ним, текст комментария и статус одобрения комментария автором поста. Также записи в таблице комментариев могут быть связаны с записями в таблице пользователей – wp_users. Мы ещё вспомним об этом в следующей части нашей статьи.
Комментарии также имеют свои метаданные, хранящиеся в отдельной таблице, и о них мы также вскоре поговорим.
Каждая публикация привязана к таблице wp_users посредством поля post_author в таблице wp_posts. Это отношение типа «один к нескольким»: у публикации может быть только один автор, а вот пользователь может быть автором любого числа публикаций.
Отношение «публикации-пользователь» отличается от отношений, связывающих публикации с метаданными или комментариями. Поэтому для связи используются разные поля: user_id вместо post_id в предыдущих случаях.
Есть также три важных связи, организованные по принципу «один ко многим», но не касающиеся таблицы публикаций. Две из них имеют отношение к метаданным.
WordPress хранит дополнительные данные (данные о данных, или метаданные), касающиеся пользователей, в таблице wp_usermeta. Там хранится, например, информация о супер администраторах в мультисайтовых инсталляциях WordPress, о пользовательском цветовом оформлении и т. д.
Основой хранения данных о пользователях является таблица wp_users. Две таблицы связаны между собой полями user_id. С пользователем может быть ассоциировано сколько угодно строк в таблице метаданных, в то время как каждый элемент метаданных принадлежит только одному пользователю.
Повторюсь: много информации касательно комментариев хранятся в одной таблице – wp_comments. Но есть также и метаданные, которые хранятся отдельно – в таблице wp_commentmeta. В ней, например, хранит свои данные популярный антиспам плагин Akismet. Отношение между этими таблицами такое же, что и в предыдущем примере.
Последнее, о чём мы хотим здесь поговорить – отношение между комментариями и пользователями. Таблица wp_comments имеет поле user_id, которое хранит идентификатор пользователя в том случае, если комментарий оставил пользователь, авторизовавшийся на сайте через систему безопасности WordPress.
Учтите, что это поле не является обязательным, так как на сайтах может использоваться анонимное комментирование или иные механизмы авторизации.
Этот тип отношений представляет собой вариант отношений «один ко многим», когда связь может быть повёрнута в обе стороны. Такое отношение используется в WordPress лишь единожды, для работы таксономии (категории и тэги также являются термами таксономии). Одна публикация может иметь несколько термов, равно как и один терм может быть использован в нескольких публикациях.
Как и многие другие приложения, WordPress реализует данное отношение через дополнительную, внутреннюю таблицу, связывающую ключевым полем две другие таблицы. Эта внутренняя таблица называется wp_term_relationships, и она связывает таблицу wp_posts с таблицей wp_term_taxonomy.
(Также эта таблица используется для связи wp_links с wp_term_taxonomy, так как в этом плане ссылки ведут себя так же, как посты. О ссылках будет рассказано чуть позже).
Отношение «многие ко многим» проще всего понять, взглянув на структуру таблиц, о которых мы говорим. Таблица wp_posts хранит публикации, а wp_term_taxonomy – отдельные термы, включая идентификатор терма и информацию о том, в какой справочник он входит.
Чтобы связать эти таблицы, WordPress создаёт запись в таблице wp_term_relationships. Эта запись содержит две ссылки: на идентификатор поста (post_id) в поле object_id и идентификатор терма (term_id) в поле term_taxonomy_id.
Таблица может содержать множество записей, относящихся к одной публикации, и множество записей, относящихся к одному терму, следовательно, она реализует отношение «многие ко многим».
Следующая диаграмма наглядно показывает описанный механизм:
Содержание примера следующее:
- пост 1 содержит термы 1 и 3;
- пост 2 содержит терм 2;
- пост 3 содержит терм 4;
- пост 4 содержит термы 1 и 3.
Разумеется, эти отношения можно описывать и в обратном порядке, например: терм 3 относится к постам 1 и 4, и т. д.
Но соотношения между данными на этом не кончаются. Есть и четвёртая таблица, wp_terms. Она содержит такие сведения о термах, как имя, слаг и описание. Каждому терму соответствует лишь одна запись в wp_terms, так что таблицы wp_term_taxonomy и wp_terms соотносятся как «один к одному».
Теоретически, нет причин держать все эти данные в разных таблицах, но на практике на проектирование базы данных влияют также соображения быстродействия.
«Ссылки» (blogroll) – функция WordPress, которая сейчас далеко не так востребована, как раньше. Фактически, начиная с версии WordPress 3.5, эта функция по умолчанию отключена. Тем не менее, отдельная таблица ссылок, wp_links, ещё присутствует в базе данных WordPress.
Таблица ссылок похожа на таблицу постов wp_posts, что вполне естественно, так как посты и ссылки – контент одного порядка. Ссылки имеют те же отношения «многие к многим» с термами таксономии.
Как вы могли убедиться, WordPress использует различные типы отношений между данными в 10 из 11 таблиц своей базы данных. Одиннадцатая таблица – wp_options – до сих пор не была мной упомянута, так как данные в ней не связаны ни с какими другими. Эта таблица хранит данные о сайте, а не его контент. В другой раз вы узнаете о ней больше.
Понимание соотношений между данными в WordPress поможет вам эффективно использовать базу данных и создавать собственные запросы к ней при разработке тем и плагинов.
В следующих статьях этой серии я расскажу подробнее о типах контента, хранящегося в базе данных WordPress, об общих чертах и различиях между ними.
Данная публикация представляет собой перевод статьи «Understanding and Working with Relationships Between Data in WordPress» , подготовленной дружной командой проекта Интернет-технологии.ру
База данных в WordPress: структура, плагин WP-Optimize, хаки
Здесь я расскажу вам о Базе данных, ее таблицах, плагине по оптимизации этих таблиц и секретов (хаки) по улучшению ее функциональности.База данных 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 комментатора;
– Удаляем комментарии со специфической ссылкой.
Введение – Блог про WordPress
Веб-сайт WordPress состоит из трех основных элементов:
- Сборка WordPress
- Контент в папке wp-content, который включает в себя темы, плагины и загрузки
- База данных, где хранится весь контент.
Большинство пользователей WordPress никогда не работают напрямую с базой данных, и порой даже не знают, что она постоянно используется при заполнении сайта. Когда WordPress обслуживает любой тип страниц, будь то домашняя страница, отдельная запись, страница или архив, он запрашивает базу данных для передачи контента, который редакторы и администраторы добавляют на сайт.
В данной серии статей я рассмотрю в деталях аспекты работы с базой данных в WordPress. Серия будет состоять из 9 частей:
- Введение
- Отношения между данными
- Типы контента
- Пользовательские данные
- Метаданные
- Таксономии, рубрики, метки и термы
- Таксономии против метаданных записей
- Таблица опций
- Данные мультисайтов в WordPress
В данном введении я рассмотрю таблицы базы данных, покажу, как они связаны с типами контента (с которыми вы, возможно, уже привыкли работать в WordPress), а также опишу, где что хранится.
Типы контента в WordPress
Поскольку таблицы базы данных используются для сохранения контента, то перед тем, как перейти к их изучению, вы должны понять, что вообще подразумевается под контентом. В WordPress существует много разных типов контента:
- Записи
- Страницы
- Произвольные типы записей
- Прикрепления
- Ссылки
- Пункты навигационного меню (которые обычно сохраняются как отдельные записи)
Следующие типы контента обычно связаны со своими данными:
- Рубрики
- Метки
- Произвольные таксономии и термы
- Метеданные записей
В дополнение к этому, есть также и другие типы контента, которые сохраняются несколько иначе:
- Виджеты
- Опции
- Пользователи
- Сайты (для мультисайтовой сборки)
- Контент, прописанный в коде (добавленный к вашим темам или плагинам)
- Контент, полученный из какого-либо источника (сторонний контент, полученный через фиды, стриминг или иные техники)
Все эти типы контента хранятся где-то в базе данных (или иногда в файлах темы или плагинов, о чем я скажу ниже). Они могут иметь свою собственную запись в БД или выступать частью другой записи (как в случае с потоковым контентом, кодированным в пост). Они могут также связываться с данными в других таблицах. К примеру, данные о постах могут быть связаны с данными о пользователях, чтобы WordPress мог знать, кто является автором тех или иных постов.
Структура БД в WordPress
WordPress использует несколько таблиц базы данных с отношениями между ними, что позволяет минимизировать объем данных, нуждающихся в сохранении – т.е. создаются отношения «один-ко-многим». Это означает, что, допустим, у одного пользователя может быть много записей, связанных с его аккаунтом. Это сделано с целью экономии – если бы WordPress хранил бы все пользовательские данные для каждого пользователя вместе с каждым постом, который он создал, то это привело бы к появлению дублируемых данных и неоправданному «поеданию» свободного пространства.
Схема, представленная ниже, взята из кодекса WordPress и показывает то, как именно связаны между собой таблицы базы данных:
Большинство таблиц связаны с одной или более других таблиц посредством одного поля. Это поле будет уникальным идентификатором для каждой записи в таблице, как, к примеру, post_id. Более подробно данный факт раскрыт в следующей таблице:
Таблица | Хранящиеся данные | Связана с: |
---|---|---|
wp_posts | Записи, страницы, прикрепления, версии и пункты навигационного меню | wp_postmeta (через post_id )wp_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_id )wp_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 и таблицы БД, используемые для его хранения, давайте посмотрим на то, как они связаны друг с другом. Таблица ниже демонстрирует то, какие именно таблицы базы данных используются для хранения того или иного типа контента:
Тип контента | Таблица (-ы) |
---|---|
записи | wp_posts |
страницы | wp_posts |
произвольные типы записей | wp_posts |
прикрепления | wp_posts |
ссылки | wp_links |
пункты навигационного меню | wp_posts |
рубрики | wp_terms |
метки | wp_terms |
произвольные таксономии | wp_term_taxonomy |
термы таксономии | wp_terms |
метаданные записей | wp_post_meta |
виджеты | wp_options |
опции | wp_options |
пользователи | wp_users |
прописанный в коде контент | wp_posts (если добавлен к записям)wp_options (если добавлен к виджетам)Файлы тем и плагинов (если прописано в коде) |
сторонний контент | wp_posts (если добавлен к записям)wp_options (если добавлен через виджеты или плагины)Файлы тем или плагинов (если прописано в коде) |
Вы, возможно, заметили, что не все таблицы базы данных показаны здесь. Некоторые из них используются для сохранения метаданных и отношений, что будет раскрыто нами позже в данной серии.
Заключение
Надеемся, что у вас теперь есть лучшее понимание того, как и где WordPress хранит разные типы данных, используя структуру БД. Эта серия раскроет все аспекты более детально.
В следующей части я изучу отношения между данными, а также посмотрю более пристально на то, как связаны между собой определенные таблицы, а также какие таблицы используются только для хранения данных об отношениях.
Источник: code.tutsplus.com
Что такое базы данных WordPress
Базы данных WordPress обычно скрыты от вебмастера, который особо не вникает в техническую сущность своего сайта. Однако этот элемент является одним из самых важных для WordPress и каждому следует понимать, для чего нужна база данных.
В этой статье мы расскажем вам о том, что такое базы данных WordPress и как они используются сайтом.
Как попасть в базы данных WordPress
Чтобы попасть в базу данных, вам следует использовать PHP MyAdmin, который есть на вашем хостинге. С помощью этого веб-приложения вы можете работать со совей базой данных, редактировать её и выполнять другие операции.
Для входа в базу данных вам следует знать имя пользователя и пароль. Как правило, эти данные есть на хостинге. Имя пользователя, пароль и сервер для подключения указывается также в файле wp-config.php, который находится в корневой папке вашего сайта. Если в этом файле данные указаны не верно, то при загрузке сайта появляется сообщение «Ошибка соединена с базой данных WordPress».
Перед тем, как вносить изменения в базы данных WordPress, сделайте резервную копию. Скопировать базы данных на компьютер можно через PHP MyAdmin или с помощью специальных плагинов для WordPress.
Что хранится в базе данных
База данных состоит из нескольких таблиц. В этих таблицах сохраняется следующая информация:
- wp_posts – в этой таблице хранится содержание записей и страниц.
- wp_postmeta – здесь метаданные записей и страниц.
- wp_comments – в этой таблице хранится содержание всех комментариев на сайте.
- wp_commentmeta – метаданные комментариев.
- wp_terms – все рубрики и метки.
- wp_links – ссылки, которые есть на сайте (не путать с перелинковкой, это ссылки из пункта «Ссылки» консоли).
- wp_users – пользователи сайта.
- wp_user_meta – метаданные пользователей.
- wp_options – настройки
Базы данных WordPress обладают и другими таблицами. Здесь указаны основные. Кроме того, почти каждый плагин создаёт свою таблицу в базе данных, в которых хранятся настройки и другая информация.
Оптимизация баз данных
Оптимизация баз данных может значительно улучшить скорость загрузки сайта. Так, в базе данных WordPress сохраняются ненужная информация – резервные копии записей и страниц, информация из корзины, данные удалённых или не рабочих плагинов.
Оптимизация баз данных WordPress может осуществляться вручную. Однако если не хватает опыта, можно использовать разнообразные плагины.
База данных 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]
Мой блог находят по следующим фразам