Содержание

Понимание и работа с данными в WordPress. Часть 1. Введение / Habr


Данная статья является переводом первой статьи Rachel McCollin из цикла о данных в WordPress. В ней по полочкам разложена структура данных, типы контента и их взаимосвязь в WordPress. Будет полезна в первую очередь новичкам, но и профессионалы могут найти для себя что-либо новое.
Замечание от переводчикаВ переводе используется терминология согласно кодексу WordPress
  • Post — запись,
  • Page — страница,
  • Attachment — вложение,
  • Revision — редакция,
  • Comment — комментарий,
  • Taxonomy — таксономия,
  • Category — категория
  • Tag — метка,
  • Term — термин (конкретное значение пользовательской таксономии)
  • User — пользователь
  • Metadata — метаданные

Исключение составляет лишь термин content. В большинстве случаев используется не перевод «содержимое», а — «контент». Я считаю, данный перевод является более корректным по тексту.
В некоторых случаях в скобках приводится расшифровка на английском для однозначного понимания.

Замечания об ошибках и опечатках прошу сообщать в личку.


Сайт на WordPress состоит из трех основных элементов:

  • Сама установка WordPress
  • Содержимое каталога wp-content, которое включает темы, плагины и загрузками
  • База данных, где хранится контент в виде данных.

Большинство пользователей WordPress никогда не работают с базой данных напрямую. Они могут быть даже не в курсе, что она постоянно работает, чтобы обеспечить работу их сайт. Когда WordPress показывает любую страницу, то он соединяется к базой данных, чтобы показать контент, который добавили авторы на сайт.

В этой серии статей будет детально рассмотрены аспекты базы данных WordPress. Эта серия состоит из девяти частей:

  1. Вступление (сейчас вы читаете именно его)
  2. Взаимосвязи между данными
  3. Типы контента
  4. Пользовательские данные
  5. Метаданные
  6. Таксономии, категории, метки и термины
  7. Таксономии VS метаданные
  8. Таблица опций
  9. Данные 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_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 не хранит связи о комментариях и пользователе, который их отправил.
  • 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 хранит различные типы данных, как использует базу данных. Более подробно элементы этого процесса будут рассмотрены в последующих статьях. Так в следующей статье будут рассмотрены взаимосвязи между данными. А так же мы остановимся более подробно на том, как конкретные таблицы связаны и как некоторые из них используются исключительно для хранения данных об взаимосвязях.

habr.com

База данных WordPress

Приветствую своих читателей в новом году, пора приступать к работе! Рано или поздно вебмастеру пригодятся технические знания об устройстве WordPress, из каких файлов состоит тема и для каких функций они предназначены, как организована структура базы данных.

База данных WordPress

Сегодня моя новая статья будет посвящена базе данных MySQL, которая является неотъемлемой частью платформы WordPress. Поскольку WordPress самостоятельно взаимодействует с базой данных, то обычные пользователи не должны сильно волноваться о её структуре. Однако, вам может быть интересно узнать, как WordPress хранит свои данные и зависимости, если пишете свой плагин.

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

Внимание! Любое изменение базы данных может привести к необратимым последствиям и нарушению работы сайта. Все действия выполняются на свой страх и риск. Обязательно делайте резервное копирование!

Поэтому я решил исправить ситуацию и перенести комментарий на другую релевантную страницу 😉 В базе данных в таблице wp_comments я нашёл этот комментарий и отредактировал строку таблицы, изменив значение поля

comment_post_ID. Просто сменил ID записи к которой был отправлен комментарий на ID другой записи. После сохранения изменений в базе данных комментарий был успешно перенесён на другую страницу.

Таблицы, из которых состоит база данных WordPress

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

Таблицы базы данных WordPress

Стандартный префикс wp_ при установке WordPress допускается не изменять. Если планируете создавать несколько сайтов с использованием одной общей базой данных, то обязательно для каждой установки задавайте разный префикс для таблиц 💡

  1. wp_commentmeta
  2. wp_comments
  3. wp_links
  4. wp_options
  5. wp_postmeta
  6. wp_posts
  7. wp_termmeta
  8. wp_terms
  9. wp_term_relationships
  10. wp_term_taxonomy
  11. wp_usermeta
  12. wp_users

Обратите внимание, если ваши таблицы не совпадают с моим списком, их больше или, наоборот, меньше, то причиной может оказаться несколько вариантов:

  • Установлена другая версия WordPress. На момент последнего редактирования текущей статьи актуальной версией является 5.0. Настоятельно рекомендую своевременно обновлять CMS.
  • Установлены плагины, которые создали в базе данных свои таблицы. Плагины также меняют содержимое таблиц, добавляя новые поля, строки и т.д.
  • В процессе установки WordPress был изменён стандартный префикс таблиц.

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

Описание и предназначение таблиц базы данных

Работая с базой данных в целях администрирования я использую панель phpMyAdmin. На вашем хостинге или сервере может быть установлено другое программное обеспечение.

phpMyAdmin

Таблица wp_commentmeta

Каждый комментарий, оставленный на сайте, содержит метаданные — эта информация хранится в этой таблице. Например, если установлен плагин Akismet для защиты от спама, то он будет записывать в неё свои данные: одобрен комментарий или нет, имеется ли пометка о спаме.

Таблица wp_commentmeta

Таблица wp_comments

Название этой таблицы говорит само за себя — здесь хранятся оставленные к записям комментарии. Именно в этой таблице я переносил комментарий с одной страницы на другую, о чём писал в начале статьи.

Таблица wp_comments

Помимо текста комментария в таблице хранится дополнительная информация, включая имя, электронную почту и сайт автора, IP-адрес с которого бы отправлен комментарий, дату, время и многое другое.

Таблица wp_links

Эта таблица раньше хранила ссылки блогролла на Кодекс, wordpress.org и другие ресурсы. На блоге у меня были удалены все ссылки из консоли, поэтому на скриншоте ниже есть надпись «Ссылок не найдено», а таблица пуста.

Таблица wp_links

Теперь эта функция устарела, но при необходимости её можно включить с помощью плагина Links Manager.

Таблица wp_options

Хранит основные настройки WordPress, в том числе параметры, доступные для изменения в консоли администрирования. Кстати, таблица wp_options очень интересна для изучения, но зачастую после установки и последующего удаления плагинов содержит лишние строки. У меня есть отличное руководство по чистке базы данных от «мусора».

Таблица wp_options

Таблица wp_postmeta

Хранит огромное количество данных о записях и страницах сайта: информацию о прикреплённых файлах (изображения, документы, видео), данные заполняемых полей при создании или редактировании записей. Некоторые плагины могут добавлять свою собственную информацию в эту таблицу. Например, плагин All in One SEO Pack хранит здесь Title, Description и Keywords.

Таблица wp_postmeta

Таблица wp_posts

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

Таблица wp_posts

Таблица wp_termmeta

Каждый термин (категории, метки и термины пользовательских таксономий) содержит информацию, называемую метаданными, и хранится в этой таблице. Скриншот не прилагаю, так как у меня эта таблица оказалась пустой. Метки и пользовательские таксономии при этом не использую.

Таблица wp_terms

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

Таблица wp_terms

Таблица wp_term_relationships

Сообщения связаны с категориями и метками из таблицы wp_terms и эта связь здесь поддерживается. Ассоциация ссылок на соответствующие категории также хранится в этой таблице.

Таблица wp_term_relationships

Таблица wp_term_taxonomy

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

Таблица wp_term_taxonomy

Таблица wp_usermeta

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

Таблица wp_usermeta

Таблица wp_users

И, наконец, на очереди последняя таблица — wp_users. Она содержит список зарегистрированных пользователей, их логин и пароль в зашифрованном виде, e-mail адрес, дату регистрации и другие сведения.

Таблица wp_users

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

webliberty.ru

Работаем с базой данных WordPress и узнаём её секреты

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

База данных WordPress хранит в себе все статьи, комментарии, рубрики и метки, а также всю информацию о плагинах и шаблона на сайте. Важность этого элемента недооценить невозможно. И поэтому необходимо знать о её оптимизации.

Зачем нужна оптимизация базы данных

Каждый раз, когда вы устанавливаете какой-либо плагин, он оставляет свой след в базе данных WordPress, создаёт свои таблицы. Даже если его потом удалить, большинство плагинов эти таблицы оставляют там.

Такая же ситуация с засорением базы данных WordPress наблюдается и при работе некоторых шаблонов. Кроме того, имеет место и создание таблицы при редактировании статей – образуются копии, с которых можно восстановить запись. Эти копии хранятся в течение всей жизни сайта, и смысла от них мало.

Оптимизация базы данных значительно улучшает скорость загрузки сайта.

Как оптимизировать базу данных в WordPress

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

WP—DBManager. Самый продвинутый плагин для работы с базой данных WordPress. Позволяет оптимизировать, делать резервные копии по расписанию. Кроме того, можно восстанавливать базу непосредственно из панели администратора, не заходя в PHP MyAdmin. Также можно из консоли делать разнообразные SQL запросы.

DB-Optimize. Тоже распространённый плагин, отличается от первого тем, что значительно проще в управлении, настройке и употребляет меньше ресурсов сервера. Несмотря на то, что он давно не обновлялся, он используется многими вебмастерами. Однако из-за этого оптимизация базы данных WordPress может проходить не полностью.

WP-Optimize. У этого плагина функционала чуть поменьше, чем у первого, но в отличие от него, он на русском языке, потому работать с базами данных WordPress будет легче. Он выполняет всё необходимое для оптимизации – управляет ревизиями, комментариями, таблицами плагинов, может делать резервные копии, и также способен работать по расписанию без участия вебмастера.

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

wpuroki.ru

Руководство для начинающих по базе данных WordPress

WordPress написан с использованием PHP в качестве скриптового языка, и MySQL в качестве системы управления базой данных. Для того, чтобы использовать WordPress, вам не обязательно изучать ни один из них. Однако, базовое понимание PHP и MySQL может помочь вам в решении проблем, а также более четко понимать как работает WordPress. В этой статье мы расскажем как WordPress использует базу данных, а также поясним значение основных таблиц в базе данных WordPress. Также мы покажем как управлять базой данных WordPress с помощью phpMyAdmin.

Как WordPress использует Базы Данных

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

При первой установке WordPress, он запрашивает у вас имя базы данных, хост, имя пользователя и пароль. Эта информация сохраняет в конфигурационном файле (wp-config.php).

wordpress-create-wp-config[1]

Во время установки WordPress использует информацию, которую вы указали о базе данных для создания таблиц, и сохраняет в нее параметры по-умолчанию для сайта. После установки WordPress выполняет запросы к этой базе данных для динамической генерации HTML страниц вашего блога. Именно это делает WordPress исключительно мощным, потому как вам не нужно создавать новый файл .html для каждой страницы, которую вы захотите добавить. WordPress обрабатывает всё «на лету».

Вникаем в суть таблиц БД WordPress

Каждая новая установка WordPress создает 11 стандартных таблиц в базе данных. Каждая таблица содержит данные для различных разделов, фичи и функционал движка WordPress. Взглянув на структуру этих таблиц, вы можете с легкостью понять где сохраняются различные «части» вашего сайта. На сегодняшний день дефолтная установка WordPress создает следующие таблицы:

Примечание: wp_ перед каждым именем таблицы является префиксом БД, который вы выбираете при установве. Он может отличаться от вашего.

wp_commentmeta : Эта таблица содержит мета информацию о комментариях, опубликованных на сайте WordPress. В этой таблице есть четыре поля: meta_id, comment_id, meta_key, и meta_value. Каждый meta_id привязывается к comment_id. Примером мета информации комментариев может быть статус комментария (Ожидающие, Одобренные, Спам, В корзине и т.д.)

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

wp_links : Для блока ссылок в ранних версиях WordPress или плагина Link Manager.

wp_options : Эта таблица содержит большинство основных настроек сайта: URL сайта, email администратора, стандартные рубрики, количество записей на странице, формат даты и многое другое. Также эта таблица используется многими плагинами для сохранения их настроек.

wp_postmeta : Эта таблица содержит мета информацию о ваших записях, страницах и произвольных типах записей в WordPress. Примером мета информации записей может быть шаблон, используемый для конкретной страницы, произвольные поля и т.д. Некоторые плагины также используют эту таблицу для хранения данных, например SEO информацию.

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

wp_terms : В WordPress есть мощная система таксономий, которая позволяет организовывать ваш контент. Отдельные элементы таксономий называются термы (terms) и они хранятся в этой таблице. Например, ваши рубрики и теги в WordPress — это таксономии, а каждая рубрика и тег внутри — терм.

wp_term_relationships : Эта таблица управляет взаимосвязями типов записей с термами в таблице wp_terms. Например, эта таблица помогает WordPress определить, что запись X находится в категории Y.

wp_term_taxonomy : Эта таблица определяет таксономии для термов в таблице wp_terms. Например, если у вас есть терм “WordPress Tutorials“, тогда в этой таблице будут содержаться данные, которые скажут о том, что он ассоциирован с таксономией рубрик. Вкратце, эта таблица содержит данные, которые позволяют WordPress определиться, какой терм является рубрикой, а какой тегом и т.д.

wp_usermeta : Содержит мета информацию о пользователях на вашем сайте.

wp_users : Содержит информацию о пользователях, такую как имя пользователя, пароль, емейл пользователя и т.д.

Управление базой данных WordPress с помощью phpMyAdmin

phpMyAdmin — это open source ПО, которое предоставляет графический веб-интерфейс для управления вашей базой mySQL. У большинства хостинг-провайдеров phpMyAdmin можно найти в панели управления хостингом, что позволяет пользователям быстро получить доступ к базе данных и выполнять операции с ней. Выглядит phpMyAdmin приблизительно следующим образом:

phpmyadmin-main[1]

Клик на Databases отобразит вам список всех доступных либо созданных вами баз данных. Выбираем свою БД WordPress, после чего видим список всех таблиц WordPress.

wordpress-tables-phpMyAdmin[1]

Здесь вы можете выполнять различные операции, такие как поиск/замена определенного слова в ваших записях, восстановление БД, ее оптимизация, добавление новых администраторов, деактивация всех плагинов, изменение паролей и прочее.

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

VN:F [1.9.22_1171]

Rating: 4.0/5 (4 votes cast)

wpincode.com

Проблема с базой данных | WordPress.org Русский

Модератор Yui

(@fierevere)

ゆい

перенесите плагином

https://ibb.co/gMm9WT
Вот сейчас я вообще перестал что-либо понимать. Выходит, CMS тоже не видит базу данных?

Модератор Yui

(@fierevere)

ゆい

это экспорт плагина? база 0 байт?

а если попробовать mysqldump
экспорт
mysqldump -u ИМЯПОЛЬЗ -p -c --databases ИМЯБД > file.sql

импорт
mysql -u ПОЛЬЗОВАТЕЛЬ -p ИМЯБД < file.sql

Модератор SeVlad

(@sevlad)

wp.me/3YHjQ

Выходит, CMS тоже не видит базу данных?

Это не возможно даже теоретически.
Проверьте настройки дубликатора. Скорее всего у Вас недоступен mysqldump, и доступ выполняется от пользователя не имеющего прав к базе.

Текстовый файл mysqldump имеет такое содержание: https://ibb.co/e6ogd8

Модератор SeVlad

(@sevlad)

wp.me/3YHjQ

Текстовый файл mysqldump

??
Я говорил проверить настройку плагина.

Модератор Yui

(@fierevere)

ゆい

импорт может иметь проблемы из-за этих директив, если имя БД на целевой системе отличается
(обмениваться текстом в виде картинок — изврат)

Я говорил проверить настройку плагина

Я отвечал Yui

Плагин «Duplicator» может завершить процесс, выдаёт ошибку: «Построение прервано сервером. This server cannot complete the build due to setup constraints.»
Какое же ограничение может стоять на сервере?

Модератор Yui

(@fierevere)

ゆい

посмотрите логи ошибок, возможно туда пишется причина более конкретно

Модератор SeVlad

(@sevlad)

wp.me/3YHjQ

Я отвечал Yui

Этого не видно. Но и Yui тоже ни про какой текстовый файл mysqldump не спрашивала. mysqldump — это системная команда (сервис, «программа») сервера.

Вы настойки плагина так и не смотрели, похоже?

Вы настойки плагина так и не смотрели, похоже?

Если Вы имеете введу обработку SQL Script, то да, она выполняется с помощью Mysqldump.

Модератор SeVlad

(@sevlad)

wp.me/3YHjQ

Я имею ввиду

Но в любом случае:

посмотрите логи ошибок, возможно туда пишется причина более конкретно

посмотрите логи ошибок, возможно туда пишется причина более конкретно

Действительно, логирование показывает несколько ошибок в запросах, однако я не знаю как они решаются:

[27-May-2018 07:34:02 UTC] База данных WordPress возвратила ошибку Table 'newposition.wp_duplicator_packages' doesn't exist в ответ на запрос SELECT * FROM 'wp_duplicator_packages' ORDER BY id DESC, выполненный do_action('toplevel_page_duplicator'), WP_Hook->do_action, WP_Hook->apply_filters, duplicator_get_menu, include('C:\inetpub\wwwroot\(URLsite)\wp-content\plugins\duplicator\views\packages\controller.php'), include('C:\inetpub\wwwroot\(URLsite)\wp-content\plugins\duplicator\views\packages\main\controller.php'), include('C:\inetpub\wwwroot\(URLsite)\wp-content\plugins\duplicator\views\packages\main\packages.php')
[27-May-2018 07:34:02 UTC] База данных WordPress возвратила ошибку Table 'newposition.wp_duplicator_packages' doesn't exist в ответ на запрос SELECT status FROM 'wp_duplicator_packages' WHERE status >= 100, выполненный do_action('toplevel_page_duplicator'), WP_Hook->do_action, WP_Hook->apply_filters, duplicator_get_menu, include('C:\inetpub\wwwroot\(URLsite)\wp-content\plugins\duplicator\views\packages\controller.php'), include('C:\inetpub\wwwroot\(URLsite)\wp-content\plugins\duplicator\views\packages\main\controller.php'), include('C:\inetpub\wwwroot\(URLsite)\wp-content\plugins\duplicator\views\packages\main\packages.php')
[27-May-2018 07:34:08 UTC] PHP Notice:  Constant WP_MEMORY_LIMIT already defined in C:\inetpub\wwwroot\(URLsite)\wp-config.php on line 92
[27-May-2018 07:34:20 UTC] PHP Notice:  Constant WP_MEMORY_LIMIT already defined in C:\inetpub\wwwroot\(URLsite)\wp-config.php on line 92
[27-May-2018 07:34:22 UTC] PHP Notice:  Constant WP_MEMORY_LIMIT already defined in C:\inetpub\wwwroot\(URLsite)\wp-config.php on line 92
[27-May-2018 07:34:31 UTC] PHP Notice:  Constant WP_MEMORY_LIMIT already defined in C:\inetpub\wwwroot\(URLsite)\wp-config.php on line 92
[27-May-2018 07:34:38 UTC] PHP Notice:  Constant WP_MEMORY_LIMIT already defined in C:\inetpub\wwwroot\(URLsite)\wp-config.php on line 92
[27-May-2018 07:34:38 UTC] База данных WordPress возвратила ошибку Table 'newposition.wp_duplicator_packages' doesn't exist в ответ на запрос SELECT ID, hash FROM 'wp_duplicator_packages' WHERE hash = 'c69ca282c95e3cfa5329180527073420', выполненный do_action('wp_ajax_duplicator_package_build'), WP_Hook->do_action, WP_Hook->apply_filters, duplicator_package_build, DUP_Package->runBuild, DUP_Package->getHashKey
[27-May-2018 07:34:38 UTC] База данных WordPress возвратила ошибку Table 'newposition.wp_duplicator_packages' doesn't exist в ответ на запрос SHOW FULL COLUMNS FROM 'wp_duplicator_packages', выполненный do_action('wp_ajax_duplicator_package_build'), WP_Hook->do_action, WP_Hook->apply_filters, duplicator_package_build, DUP_Package->runBuild
[27-May-2018 07:34:38 UTC] База данных WordPress возвратила ошибку Table 'newposition.wp_duplicator_packages' doesn't exist в ответ на запрос SHOW FULL COLUMNS FROM 'wp_duplicator_packages', выполненный do_action('wp_ajax_duplicator_package_build'), WP_Hook->do_action, WP_Hook->apply_filters, duplicator_package_build, DUP_Package->runBuild
  • Ответ изменён 1 год, 6 месяцев назад пользователем SeVlad. Причина: код
Модератор SeVlad

(@sevlad)

wp.me/3YHjQ

Table ‘newposition.wp_duplicator_packages’ doesn’t exist

В базе проверили наличие этой таблицы?
Она может быть пустая, но целая. Её структура:

В базе проверили наличие этой таблицы?

База данных вообще пустая: https://ibb.co/bUDGwT

ru.wordpress.org

База данных WordPress сайта | IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжаем разговор о создании блога на WordPress. И сегодня мы поговорим о базе данных WordPress. Разберемся с сервером баз данных, который используется движком WordPress, какой тип движка использует база данных WordPress. Поговорим немного о таблицах базы данных WordPress, и на конец,  мы рассмотрим структуру каждой таблицы.

 

База данных WordPress сайта

База данных WordPress сайта

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

Особенности работы базы данных 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 без расширений и плагинов, так как некоторые модули WordPress способных изменять, как архитектуру базы данных, так и содержимое некоторых таблиц.

Таблица базы данных WordPress
Имя таблицы WP Содержимое таблицы WP Пользовательский интерфейс
 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_commentmeta базы данных WordPress

Индексы таблицы wp_commentmeta базы данных WordPress


Описание таблицы wp_comments базы данных WordPress

Описание таблицы wp_comments базы данных WordPress


Индексы таблицы wp_comments базы данных WordPress

Индексы таблицы wp_comments базы данных WordPress


Описание таблицы wp_links базы данных WordPress

Описание таблицы wp_links базы данных WordPress


Индексы таблицы wp_links базы данных WordPress

Индексы таблицы wp_links базы данных WordPress


Описание таблицы wp_options базы данных WordPress

Описание таблицы wp_options базы данных WordPress


Индексы таблицы wp_options базы данных WordPress

Индексы таблицы wp_options базы данных WordPress


Описание таблицы wp_postmeta базы данных WordPress

Описание таблицы wp_postmeta базы данных WordPress


Индексы таблицы wp_postmeta базы данных WordPress

Индексы таблицы wp_postmeta базы данных WordPress


Описание таблицы wp_posts базы данных WordPress

Описание таблицы wp_posts базы данных WordPress


Индексы таблицы wp_posts базы данных WordPress

Индексы таблицы wp_posts базы данных WordPress


Описание таблицы wp_terms базы данных WordPress

Описание таблицы wp_terms базы данных WordPress


Индексы таблицы wp_terms базы данных WordPress

Индексы таблицы wp_terms базы данных WordPress


Описание таблицы wp_terms_relationships базы данных WordPress

Описание таблицы wp_terms_relationships базы данных WordPress

 

Индексы таблицы wp_terms_relationships базы данных WordPress

Индексы таблицы wp_terms_relationships базы данных WordPress


Описание таблицы wp_term_taxanomy базы данных WordPress

Описание таблицы wp_term_taxanomy базы данных WordPress


Индексы таблицы wp_term_taxanomy базы данных WordPress

Индексы таблицы wp_term_taxanomy базы данных WordPress


Описание таблицы wp_usermeta базы данных WordPress

Описание таблицы wp_usermeta базы данных WordPress


Индексы таблицы wp_usermeta базы данных WordPress

Индексы таблицы wp_usermeta базы данных WordPress

 

Описание таблицы wp_users базы данных WordPress

Описание таблицы wp_users базы данных WordPress


Индексы таблицы wp_users базы данных WordPress

Индексы таблицы wp_users базы данных WordPress

Что же, на этом можно будет закончить описание архитектуры базы данных WordPress.

zametkinapolyah.ru

Оптимизация базы данных WordPress. Плагин базы данных WordPress

Оптимизация базы данных WordPress

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

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

WordPress пытается сделать работу с сайтом как можно комфортнее для пользователя. В частности, это удобство проявляется на этапе написания или редактирования статей. Полагаю, многие из нас могли сталкиваться с такой ситуацией: вы решили на своем домашнем компьютере написать статью. Открыли документ Word, сделали себе чашечку кофе и начали неспешно излагать свои мысли на электронной бумаге. Через некоторое время статья написана, вы допиваете последний глоток кофе и… монитор гаснет. Вы понимаете, что пропало электричество и, вместе с этим, понимаете, что забыли сохранить написанную статью. Результат вашей часовой работы — ноль. Знакомая ситуация, не так ли?

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

Кроме того, если вы где-то ошиблись и, к примеру, удалили нужный контент, тогда вы можете его попытаться найти и восстановить, просмотрев те редакции (еще их называют ревизиями), которые WordPress предусмотрительно сохранил для нас. Как же это сделать? Для этого просто нужно включить показ редакций в настройках экрана (в правом верхнем углу) в момент редактирования статьи.

Оптимизация базы данных WordPress

Бесплатный курс «Основы создания тем WordPress»

Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц

Скачать курс

Оптимизация базы данных WordPress

После этого после статьи вы должны увидеть список доступных для нее редакций.

Оптимизация базы данных WordPress

Соответственно, можно выбрать при необходимости нужную редакцию и восстановить статью из нее.

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

Именно поэтому желательно изначально настроить WordPress и ограничить количество редакций разумным числом. Например, я всегда ограничиваюсь двумя-тремя редакциями. Сделать это достаточно просто. Используем константу WordPress WP_POST_REVISIONS и укажем максимальное количество редакций. Сделать это нужно в файле wp-config.php, например после настроек подключения к базе данных.

Оптимизация базы данных WordPress

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

Итак, мы произвели необходимые настройки и теперь база данных WordPress не будет засоряться. Однако что делать с уже имеющимися редакциями, которые никуда не делись и которые нам не нужны. Вот здесь и пришло время для оптимизации и настройки базы данных. В этом нам поможет популярный плагин WP-Optimize. Перейдем в раздел добавления нового плагина и найдем его по запросу wp optimize.

Оптимизация базы данных WordPress

Установим и активируем плагин. После установки плагина в меню мы увидим одноименный с плагином новый пункт.

Оптимизация базы данных WordPress

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

Плагин честно предупреждает о необходимости бэкапа базы данных. Старайтесь не забывать об этом и сделайте бэкап перед оптимизацией базы данных. Итак, для оптимизации базы нажмем кнопку PROCESS и по окончании увидим отчет о проделанной плагином работе.

Оптимизация базы данных WordPress

Как видим, ничего сложного нет. В зависимости от того, насколько часто вы публикуете контент, вы можете повторять периодически процедуру чистки и оптимизации базы данных WordPress, поддерживая ваш сайт оптимальном состоянии. На этом у меня все. Удачи!

Оптимизация базы данных WordPress

Бесплатный курс «Основы создания тем WordPress»

Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц

Скачать курс Оптимизация базы данных WordPress

Основы создания тем WordPress

Научитесь создавать мультиязычные темы с нестандартной структурой страниц

Смотреть

webformyself.com