• Использование WP_Query с пользовательскими таксономиями

    УрокиКомментариев нет

    Как только вы добавили пользовательскую таксономию, вам наверняка понадобится делать запросы к базе для получения записей с терминами этой таксономии. Чтобы сделать это, мы можем воспользоваться WP_QUERY с запросами к таксономиям.

    Запросы к таксономиям могут быть очень простыми или более сложными. Простейшим будет запрос на все записи с определенным термином. Например, если у вас есть тип записи «джедай» и ассоциированная пользовательская таксономия «level» (уровень), то получить всех мастеров Джедаев вы сможете так:

    <?php
        $args = array(
            'post_type' => 'джедай',
            'level' => 'мастер'
        );
        $query = new WP_Query( $args );
    ?>
    

    Если вы добавили вторую пользовательскую таксономию «era» (эпоха), то найти всех мастеров Джедаев эпохи Старой Республики можно так:

    <?php
        $args = array(
            'post_type' => 'джедай',
            'level' => 'мастер',
            'era' => 'старая_республика',
        );
        $query = new WP_Query( $args );
    ?>
    

    Мы также можем делать более сложные сравнения, использовав полную tax_query. Аргумент tax_query позволяет нам искать по ID вместо слага (как мы делали раньше) и искать более одного термина. Также можно комбинировать множество запросов к таксономиям и устанавливать отношения между двумя. В добавок мы можем даже использовать SQL оператор NOT IN для исключения термина.

    Возможности безграничны. Исследуйте Справочник классов/WP_Query раздела «Taxonomy Parameters» Кодекса для более подробной информации. Фрагмент кода ниже ищет в нашем типе записей «джедай» рыцарей Джедаев и мастеров Джедаев, кто не из эпохи Старой Республики:

    <?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 );
    ?>
    

    Статьи из раздела:

    1. Как работают архивы таксономий, тегов, категорий и пользовательских типов таксономий.
    2. Создание пользовательских таксономий
    3. Добавление пользовательских типов записей к архивам категорий и тегов.
    4. Делаем архивы категорий или таксономии иерархическими
    5. Создание пользовательской целевой страницы для архивов таксономий

    Будь первым кто прокомментирует статью.

    Добавить комментарий

    Войти с помощью: