Список способов доступа к базе данных WordPress?

Я пытаюсь получить полное представление о том, как WordPress работает с базами данных. Я прочитал документацию, но меня путают все доступные подходы. До сих пор я понимаю это (на уровне абстракции от базы данных):

=========================

«WP_API» (для доступа к данным REST / HTTP)

=========================

«get / add / update / delete» (например, get_post_meta ())

=========================

Класс WP_Query (данные доступа без записи SQL)

=========================

Объект «$ wpdb» (данные доступа путем написания прямого SQL)

=========================

База данных MySQL (хранилище настойчивости)

Правильно ли это упорядочено? Я что-то пропустил, что еще там? Мне кажется, что любой прямой SQL-запрос может быть выполнен с $ wpdb. Затем есть абстракция WP_Query поверх $ wpdb для людей, которые не хотят писать SQL. Затем еще раз есть еще одна абстракция поверх WP_Query для людей, которые хотят использовать простые функции. И, наконец, есть новый WP REST API, который может делать все это и многое другое.

Я мог бы просто использовать $ wpdb (или WP_API), потому что все не может? Зачем беспокоиться с WP_Query или функциями get / add / update / delete? Разве это не просто добавляет лишнего раздувания / сложности?

Solutions Collecting From Web of "Список способов доступа к базе данных WordPress?"

Есть несколько совпадений, но каждый из них не является абстракцией предыдущего, и есть определенные вещи, которые вы не хотите делать за пределами API. Большинство вещей, на самом деле!

WP_Query предназначен для поиска сообщений и страниц, он ничего не обновляет и не извлекает данные, которые не являются почтой или страницей. Функции API более высокого уровня, которые извлекают сообщения и страницы, используют WP_Query за кулисами, но WordPress имеет много других видов данных (post meta, таксономии, пользователи, пользовательские мета), с которыми WP_Query напрямую не справляется.

Вы не можете использовать $wpdb напрямую для большинства вещей, потому что в основном вы нарушаете вещи. Если вы проводили какое-то время с WordPress, вы, вероятно, слышали о Hooks, Actions и Filters . Запрос базы данных напрямую обходит всю систему, поэтому всякая модификация запросов, извлеченных данных, кешей или действий, которые будут выполняться при возникновении определенного события, будет нарушена.