Как правильно использовать tax_query в wordpress

236
12 июня 2018, 16:40

Всем привет нужно сделать выборку постов пользовательской таксономии с конкретным id. (ID таксономии) Руководствуясь документацией на сайте https://wp-kama.ru/function/wp_query#parametry-taksonomij его пример:

$query = new WP_Query( array(
'tax_query' => array(
    array(
        'taxonomy' => 'people',
        'field'    => 'slug',
        'terms'    => 'bob'
    )
)
) );

я пытаюсь повторить, в моем случае имеем taxonomy - job_listing_category post_type - job_listing и id конкретной категории для выборки постов к примеру 1743 итак код

$args = [
    'post_type' => 'job_listing',
    [ 'tax_query ' =>
        [
            'taxonomy' => 'job_listing_category',
            'fields' => 'term_id',
            'terms' => '1743'
        ]
    ]
];
$q = new WP_Query( $args );
debug($q->posts);

И в этом случае получаю все посты из таксономии job_listing_category но 'terms' => '1743' не срабатывает. Вопрос почему так происходит?

Данные по таксономии беру из адресной строки - скриншот

я же правильно выбрал данные?

Потом мне подсказали сделать иначе запрос в класс WP_Query выглядит следующим образом:

$args1['tax_query'][] = [
    'taxonomy' => 'job_listing_category', 
    'field' => 'term_id',
    'terms' => 1743
];

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

Ну все что дальше идет после запроса WP_Query() нас не интересует поэтому код по сути такой:

function inpoland_job_categories_cb(){
    /**
 * Такой запрос не срабатывет
 */
$args1 = [
    'post_type' => 'post',
    'tax_query' => [
        'taxonomy' => 'category',
        'field' => 'term_id',
        'terms' => '4088',
    ],
];
/**
 * Запрос который мне подсказали
 */
$args2['tax_query'][] = [
    'taxonomy' => 'job_listing_category',
    'field' => 'term_id',
    'terms' => '1743',
    'post_per_page' => 2
];

/**
 * Правильной запрос
 */
$args3 = [
    'post_type' => 'job_listing',
    'tax_query' => [
        [
            'taxonomy' => 'job_listing_category',
            'fields' => 'id',
            'terms' => '1743',
        ]
    ],
    'post_per_page' => '20'
];
$q = new WP_Query( $args3 );
debug($q->posts); //просто вывод на экран
}
add_shortcode('inpoland_job_categories', 'inpoland_job_categories_cb');
READ ALSO
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in

Ошибка в поисковом запросе

254
Свои Лайки на Сайте РНР

Свои Лайки на Сайте РНР

Как сделать свои лайки на сайте(как в ВК)? Допустим есть столбец like в таблице news, как сделать так, чтобы при нажатии на лайк, добовлялся 1 балл...

207
Ограничить число публикаций до трёх в неделю

Ограничить число публикаций до трёх в неделю

Всем приветЕсть на сайте публикации

214
Почему у меня не получается передать переменную в Mail?

Почему у меня не получается передать переменную в Mail?

Как мне передать переменную $email в Mail ? И почему она так не передается ? а только нужно писать например

161