Как только вы добавили пользовательскую таксономию, вам наверняка понадобится делать запросы к базе для получения записей с терминами этой таксономии. Чтобы сделать это, мы можем воспользоваться WP_QUERY с запросами к таксономиям.
Запросы к таксономиям могут быть очень простыми или более сложными. Простейшим будет запрос на все записи с определенным термином. Например, если у вас есть тип записи «джедай» и ассоциированная пользовательская таксономия «level» (уровень), то получить всех мастеров Джедаев вы сможете так:
1 2 3 4 5 6 7 |
<?php $args = array( 'post_type' => 'джедай', 'level' => 'мастер' ); $query = new WP_Query( $args ); ?> |
Если вы добавили вторую пользовательскую таксономию «era» (эпоха), то найти всех мастеров Джедаев эпохи Старой Республики можно так:
1 2 3 4 5 6 7 8 |
<?php $args = array( 'post_type' => 'джедай', 'level' => 'мастер', 'era' => 'старая_республика', ); $query = new WP_Query( $args ); ?> |
Мы также можем делать более сложные сравнения, использовав полную tax_query. Аргумент tax_query позволяет нам искать по ID вместо слага (как мы делали раньше) и искать более одного термина. Также можно комбинировать множество запросов к таксономиям и устанавливать отношения между двумя. В добавок мы можем даже использовать SQL оператор NOT IN для исключения термина.
Возможности безграничны. Исследуйте Справочник классов/WP_Query раздела «Taxonomy Parameters» Кодекса для более подробной информации. Фрагмент кода ниже ищет в нашем типе записей «джедай» рыцарей Джедаев и мастеров Джедаев, кто не из эпохи Старой Республики:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $args = array( 'post_type' => 'джедай', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'level', 'field' => 'slug', 'terms' => array( 'мастер', 'рыцарь' ) ), array( 'taxonomy' => 'era', 'field' => 'slug', 'terms' => array( 'старая_республика' ), 'operator' => 'NOT IN' ) ) ); $query = new WP_Query( $args ); ?> |
Статьи из раздела:
- Как работают архивы таксономий, тегов, категорий и пользовательских типов таксономий.
- Создание пользовательских таксономий
- Добавление пользовательских типов записей к архивам категорий и тегов.
- Делаем архивы категорий или таксономии иерархическими
- Создание пользовательской целевой страницы для архивов таксономий
Будь первым кто прокомментирует статью.