WP Query с произвольной таксономией

11 янв. 2013 г., 14:18:57
Просмотры: 29.1K
Голосов: 2

Я только начинаю работать с WP Query и надеюсь получить некоторую помощь.

Я создал произвольную таксономию (theme) и теперь хочу отобразить последнюю запись с одной из этих таксономий на моей главной странице как главный рекомендуемый пост.

Я не могу разобраться, как правильно отфильтровать запрос, возможно, кто-то сможет исправить мой код:

<?php
           $args = array(
                'tax_query' => array(
                    array(
                        'posts_per_page' => 1,
                        'taxonomy' => 'theme',
                        'field' => 'slug',
                        'terms' => array ('text-image', 'just-text', 'just-image')
                    )
                )
            );
            $query = new WP_Query( $args );
           ?>
           <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Буду очень признателен за любую помощь, спасибо!

РЕДАКТИРОВАНИЕ: Вот готовый код, если кому-то понадобится;

<?php
           $args = array(
            'post_type' => 'post', // это значение по умолчанию, можно пропустить
            'posts_per_page' => '1',
            'order_by' => 'date', // это тоже значение по умолчанию
            'order' => 'DESC', // это тоже значение по умолчанию
                'tax_query' => array(
                    array(
                        'taxonomy' => 'nameoftaxonomy',
                        'field' => 'slug',
                        'terms' => array ('whatever1', 'whatever2', 'whatever3')
                    )
                )
            );
            $query = new WP_Query( $args );
           ?>
           <?php if (have_posts()) : while( $query->have_posts() ) : $query->the_post(); ?>

Спасибо за помощь!

1
Комментарии

Вы уверены, что какая-либо из статей соответствует этому критерию поиска?

Rohit Pande Rohit Pande
11 янв. 2013 г. 14:26:35
Все ответы на вопрос 2
0

Ваши аргументы в WP_Query неверны. Параметр posts_per_page не является частью tax_query. Вот рабочий вариант:

$args = array(
    'post_type' => 'post', // это значение по умолчанию, можно опустить
    'posts_per_page' => '1',
    'order_by' => 'date', // также значение по умолчанию
    'order' => 'DESC', // также значение по умолчанию
    'tax_query' => array(
        array(
            'taxonomy' => 'theme',
            'field' => 'slug',
            'terms' => array ('text-image', 'just-text', 'just-image')
        )
    )
);
11 янв. 2013 г. 15:47:52
1

Вы должны использовать ваш объект следующим образом:

while ( $query->have_posts() ) : $query->the_post();
11 янв. 2013 г. 14:25:16
Комментарии

Если сниппет хороший, можете подтвердить ответ для других? :)

miko7358 miko7358
11 янв. 2013 г. 14:30:08