Выполнение запросов в WordPress с помощью WP_Query
Опубликовано: 2023-02-12База данных, которая питает ваш сайт WordPress, полна ценной информации. Это то, что позволяет фильтровать ваши сообщения и страницы по множеству различных переменных. Однако если то, что вы хотите отобразить, не является частью вашей темы, существуют другие способы использования этих данных.
Здесь на помощь приходит WP_Query. Это класс PHP, который использует множество параметров. Следовательно, он позволяет вам извлекать данные из базы данных WordPress для использования или отображения на вашем веб-сайте.
В этой статье мы дадим более глубокое понимание класса WP_Query и того, как его можно использовать. Мы также познакомим вас с некоторыми важными шагами, которые необходимо выполнить при его использовании. Если вы готовы, давайте погрузимся прямо сейчас!
Что такое WP_Query?
Как мы уже упоминали, WP_Query — это класс PHP, используемый базой данных WordPress. Этот конкретный класс может делать несколько вещей, но в основном он используется для извлечения сообщений из базы данных.
Как видно из его названия, он делает запрос на основе заданных вами критериев. Поскольку есть много параметров, которые вы можете использовать с WP_Query в WordPress, вы можете получать и отображать сообщения несколькими уникальными способами. Мы рассмотрим эти варианты более подробно позже в этом посте.
Как использовать WP_Query
Даже если вы только изучаете различные аспекты кодовой базы WordPress, WP_Query — хороший класс для начала. Теперь давайте разберем четыре различных способа использования его на своем веб-сайте.
1. Начните с пользовательского цикла
Один из лучших способов познакомиться с вызовом WP_Query — через цикл WordPress. Если вы не знакомы с циклом, это важная концепция, о которой стоит прочитать.
Цикл — это то, что обращается к базе данных, запрашивая контент публикации, и отображает возвращаемые данные. Он также работает на основе заданных параметров, таких как количество сообщений, которые вы хотите, чтобы ваш сайт отображал на одной странице (что-то, что вы можете настроить в меню «Настройки»> «Чтение» ).
Самые основы Loop выглядят так:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
Это простое утверждение, по сути, говорит о том, что если есть сообщения, они должны отображаться. Конечно, вы можете добавить к этой основе множество тегов шаблона, чтобы создать желаемое отображение.
Вы также можете вставить WP_Query в цикл. Это позволяет вам размещать параметры того, какие сообщения будут возвращены. Давайте разберем, как это будет выглядеть:
<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
Вы увидите те же операторы if/while из основного цикла, но с дополнительной строкой WP_Query. Какие бы параметры здесь ни были установлены, они будут определять, какие сообщения будут отображаться.
Например, если вы хотите исключить определенного автора из списка сообщений, вы можете сделать это в цикле с помощью WP_Query:
$query = new WP_Query( array( 'author' => -12 ) );
Поместив это в Цикл, ваши отображаемые сообщения больше не будут включать пользователя с номером автора «12».
Количество параметров, которые вы можете использовать с этим методом, практически бесконечно. Вы можете включить информацию о категории, а также расширенную таксономию, просто чтобы привести два примера.
2. Аргументы: основа пользовательских запросов в WordPress
В предыдущем примере вы могли заметить «($args)» как часть строки. Это жизненно важная часть запроса, которая относится к включенным «аргументам». Он сообщает базе данных, что именно следует включать в возвращаемые данные.
По сути, эти аргументы можно настроить для определения точных результатов, которые вы хотите отобразить. Аргументы также можно использовать для изменения значения переменных. Например, если вы хотите изменить способ отображения списка категорий на странице, вы можете использовать аргумент.
Ваш аргумент будет определять массив переменных и значений. Поэтому, если вы хотите, вы можете использовать аргумент для определения массива и сообщить своей базе данных, чтобы представить категории в порядке убывания. Кроме того, вы можете использовать тот же метод для исключения любых категорий, не содержащих сообщений.
3. Параметры в WP_Query: категория, тег и прочее
До сих пор мы лишь мимоходом упоминали параметры. На этом этапе давайте подробнее рассмотрим, что они на самом деле могут сделать. Их основная функция — позволить вам создавать специально разработанные коллекции сообщений.
Одним из примеров параметра, который можно использовать в шапке вашего сайта, является параметр «Категория». Вы можете использовать это, чтобы указать определенные категории для отображения. Это делается путем предоставления соответствующего номера категории или ярлыка.
Кроме того, вы можете сделать то же самое с параметром Tag. Конечно, параметры «Категория» и «Тег» — это лишь верхушка айсберга, когда дело доходит до использования WP_Query.
4. Измените объекты с помощью методов и свойств
Хотя не рекомендуется напрямую изменять свойства класса, такого как WP_Query, вы можете взаимодействовать с ними с помощью методов. По сути, методы похожи на функции, а свойства — на переменные.
WP_Query имеет много свойств. Они варьируются от простых свойств «$posts» до более сложных. Какой бы метод ни использовался для взаимодействия с ними, данные будут возвращены на основе параметров, которые вы выбрали.
WP_Query против query_posts() в WordPress
Стоит отметить, что есть еще один способ изменить основной запрос на вашей странице. Это функция query_posts(). Хотя это может работать аналогично WP_Query, это также может быть очень проблематично.
Справочник по коду WordPress даже настоятельно рекомендует вам не использовать эту функцию внутри основного цикла вашего веб-сайта. Также лучше избегать его в плагинах и темах. Это потому, что он полностью переопределит ваш основной запрос.
Класс WP_Query предпочтительнее, потому что вы также можете «сбросить» основной цикл после выполнения запроса. Так как WP_Query позволяет вам выполнять несколько запросов в цикле, вы также захотите понять, как реализовать функцию wp_reset_postdata.
Если вы встроили дополнительный цикл в основной цикл WordPress, функция сброса будет размещена в конце и будет выглядеть так:
<?php wp_reset_postdata(); ?>
Это восстановит теги шаблона по умолчанию, и вы вернетесь к тому, как все было до запуска вторичного цикла.
Настройте свой сайт WordPress с помощью движка WP
Возможность вносить изменения в то, как элементы отображаются на вашем веб-сайте, — это лишь одно из преимуществ использования WordPress. Понимание WP_Query и использование инструментов, представленных на странице ресурсов для разработчиков, может помочь вам создавать действительно индивидуальные веб-сайты.
Здесь, в WP Engine, мы заинтересованы в том, чтобы у вас были ресурсы, необходимые для создания привлекательных веб-сайтов. Ознакомьтесь с нашими решениями WordPress и планами хостинга уже сегодня!