Wordpress — показывать только сообщения с определенным слагом

Я уверен, что это будет глупый вопрос... но вот оно.

В настоящее время у меня есть страница, на которой отображаются сообщения только пользовательского типа сообщений (автомобиль). Я делаю это, запустив запрос

$args = array(
    'post_type' => 'car');
$query = new WP_Query( $args );

On to the loop...

Для этого пользовательского типа сообщений у меня есть пользовательская таксономия, например. Subaru, Honda и т. д. Я просто пытаюсь придумать что-то еще, но если бы я хотел показать только посты, принадлежащие Subaru, как бы я это сделал?

Думаю, я хочу запросить «слаг» (субару), этот код не работает, но вы можете увидеть маршрут, которым я шел...

$args = array(
    'name' => 'subaru',
    'post_type' => 'car');
$query = new WP_Query( $args );

On to the loop...

Я знаю, что name не прав. Какой правильный термин добавить к моему массиву $args?

Большое спасибо


person Steviehype    schedule 24.04.2014    source источник


Ответы (3)


Зависит от того, как называется ваша таксономия. В моем примере это называется «бренды»:

$args = array(
    'post_type' => 'car',
    'brand' => 'subaru'
    );
$query = new WP_Query( $args );

см. http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

person Steve    schedule 24.04.2014
comment
Благодарю вас! Это называется «car_manufacturers», и поэтому мне было так трудно найти ответ! - person Steviehype; 24.04.2014
comment
@Steviehype Рад, что смог помочь - person Steve; 24.04.2014

То, что вы пытаетесь сделать, это запрос таксономии. Я мог бы рассказать вам, как это сделать, но я думаю, что важно сначала указать на гораздо большую ошибку. Вы не должны запрашивать это на странице.

Для этого есть архивы.

Создайте файл шаблона с именем archive-car.php и выведите туда. Это избавляет от необходимости запускать собственный WP Query.

Затем создайте еще один файл taxonomy-{your-custom-taxonomy-name}.php

Выведите машины туда же, и ваша проблема будет решена без добавления неэффективных запросов.

person Nathan Dawson    schedule 24.04.2014
comment
Спасибо за информацию. На самом деле я работаю над сеткой, такой как страница портфолио, с фильтрацией ajax на основе таксономии. Поэтому я просто хотел проверить, работает ли этот запрос. Я на самом деле не использую его на странице, так сказать. - person Steviehype; 24.04.2014

Я думаю, вам нужно использовать get_terms()

 $terms = get_terms("Subaru");
 if ( !empty( $terms ) && !is_wp_error( $terms ) ){
     echo "<ul>";
     foreach ( $terms as $term ) {
       echo "<li>" . $term->name . "</li>";

     }
     echo "</ul>";
 }

См. этот http://codex.wordpress.org/Function_Reference/get_terms.

person apomene    schedule 24.04.2014