Не удается получить должным образом сообщения в категории пользовательских типов сообщений WP_Query - PullRequest
0 голосов
/ 11 октября 2019

У меня есть некоторые проблемы с WP_Query для пользовательских типов сообщений, я не могу получить пользовательские сообщения по категориям должным образом. У меня есть:

function my_render_posts_block( $attributes ) {
$tax_query = array(
    array(
      'taxonomy' => 'my_cpt_category',
      'field'    => 'term_id',
      'terms'    => $attributes['postCategories']
    )
);
$args = array(
    'post_type' => 'my_cpt',
);
if($attributes['postCategories']) {
    $args['tax_query'] = $tax_query;
}
$query = new WP_Query($args);
$posts = '';
if($query->have_posts()) {
    $posts .= '<ul>';
    while ($query->have_posts()) {
        $query->the_post();
        $posts .= '<li><a href="' . esc_url( get_the_permalink() ) . '">' . get_the_title() . '</a></li>';
    }
    $posts .= '</ul>';
    wp_reset_postdata();
    return $posts;
} else {
    return '<div>' . __("No Posts Found", "my-blocks") . '</div>';
}}

На самом деле это работает на один срок, но если я выберу 2 условия, он будет отображать сообщения только на первый срок. В $ attribute ['postCategories'] я передаю идентификаторы терминов, если var_dump это, я получаю строку (7) "209,208", где 209 и 208 - правильные идентификаторы терминов. Что я делаю неправильно? Спасибо.

1 Ответ

0 голосов
/ 11 октября 2019

Вы передали в виде строки вместо массива

$termsArray = explode(',', $attributes['postCategories']);

$tax_query = array(
    array(
      'taxonomy' => 'my_cpt_category',
      'field'    => 'term_id',
      'terms'    => $termsArray
    )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...