WordPress DemoSite

Тестовый сайт для экспериментов и демонстраций возможностей

WP_Query основа WordPress

WP_Query — это один из самых мощных и гибких классов в WordPress, предназначенный для запросов к базе данных. Он позволяет получать записи, страницы, пользовательские типы записей, таксономии и другие данные с учетом различных параметров. Это основной инструмент для работы с контентом в WordPress.

Основное назначение WP_Query

WP_Query используется для:

Структура WP_Query

Основные этапы работы с WP_Query:

  1. Создание экземпляра класса с параметрами запроса.
  2. Использование цикла для вывода результатов.
  3. Сброс данных запроса после завершения.

Пример базового использования:

$query = new WP_Query($args);
if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        // Вывод контента
        the_title(); // Вывод заголовка
        the_content(); // Вывод содержимого
    }
} else {
    echo 'Записей не найдено.';
}
wp_reset_postdata(); // Сброс данных запроса

Основные параметры WP_Query

WP_Query принимает массив параметров ($args), которые определяют, какие данные будут получены. Вот основные параметры:

1. Параметры для выборки записей

  $args = array(
      'post_type' => 'post', // Получить только записи
  );
  $args = array(
      'posts_per_page' => 5, // Получить 5 записей
  );
  $args = array(
      'post_status' => 'publish', // Только опубликованные записи
  );

2. Параметры для фильтрации по таксономиям

  $args = array(
      'category_name' => 'news', // Записи из категории "news"
  );
  $args = array(
      'tag' => 'wordpress', // Записи с тегом "wordpress"
  );
  $args = array(
      'tax_query' => array(
          array(
              'taxonomy' => 'category',
              'field'    => 'slug',
              'terms'    => 'tutorials',
          ),
      ),
  );

3. Параметры для фильтрации по метаполям

  $args = array(
      'meta_key'   => 'rating',
      'meta_value' => '5',
  );
  $args = array(
      'meta_query' => array(
          array(
              'key'     => 'price',
              'value'   => 100,
              'compare' => '>=',
              'type'    => 'NUMERIC',
          ),
      ),
  );

4. Параметры для сортировки

  $args = array(
      'orderby' => 'date', // Сортировка по дате
      'order'   => 'DESC', // По убыванию
  );

5. Параметры для пагинации

  $args = array(
      'paged' => get_query_var('paged') ? get_query_var('paged') : 1, // Текущая страница
  );
  $args = array(
      'offset' => 5, // Пропустить первые 5 записей
  );

6. Параметры для поиска

  $args = array(
      's' => 'WordPress', // Поиск записей с ключевым словом "WordPress"
  );

Примеры использования WP_Query

1. Получить последние 5 записей из категории «news»:

$args = array(
    'post_type'      => 'post',
    'category_name'  => 'news',
    'posts_per_page' => 5,
);
$query = new WP_Query($args);

2. Получить записи с определенным метаполем:

$args = array(
    'meta_key'   => 'featured',
    'meta_value' => 'yes',
);
$query = new WP_Query($args);

3. Получить записи с сортировкой по метаполю:

$args = array(
    'meta_key' => 'rating',
    'orderby'  => 'meta_value_num',
    'order'    => 'DESC',
);
$query = new WP_Query($args);

4. Получить записи с использованием tax_query:

$args = array(
    'post_type' => 'product',
    'tax_query' => array(
        array(
            'taxonomy' => 'product_category',
            'field'    => 'slug',
            'terms'    => 'electronics',
        ),
    ),
);
$query = new WP_Query($args);

Методы и свойства WP_Query

После создания запроса, вы можете использовать методы и свойства объекта WP_Query:

Сброс данных запроса

После использования WP_Query важно сбросить данные запроса, чтобы избежать конфликтов с основным циклом WordPress:

wp_reset_postdata();

Заключение

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

Полный стэк: .NET | AMQP | Android | api | Bash | Bootstrap | C++ | cms | Composer | css | Data | Elasticsearch | ESP32 | Git | GraphQL | Gulp | JavaScript | JetStream | Joomla | js | Kotlin | Laravel | LEMP | Linux | LMS | Markdown | MODX | Moodle | MySQL | NATS | Nginx | Node.js | OpenCart | Parsedown | PHP | Python | RabbitMQ | SCSS | SEO | Simpla | SOAP | SQL | startup | Swift | Symfony | Tailwind | Translation | Twig | Ubuntu | Unit | web3 | Webasyst | Webpack | WebSocket | WordPress | XML | Бизнес | блокчейн | ИИ | интернет-магазин | ЛК | Руководство | ТЗ | фреймворк | Яндекс.Трекер