Цикл пользовательского типа поста WordPress по идентификатору тега

Я пытаюсь создать цикл постов произвольного типа по идентификатору тега.
Это исходный код:

<?php $args = array(
            'post_type' => 'kana_portfolio',
            'meta_key'   => 'choose_layout_2',
            'meta_value' => 'layout-1',
            'posts_per_page' => -1
        );
        $posts = get_posts($args);
        $term_array = array();
        $portfolio_term_array = array();
        foreach ( $posts as $post ) : setup_postdata( $post );
            $terms = wp_get_post_terms( get_the_ID(), 'kana_genre');
            foreach($terms as $term){
                $term_array[$term->slug] = $term->name;
                $portfolio_term_array[] = $term->slug;
            }
        endforeach;
        wp_reset_postdata(); ?>

Поскольку мне нужно зацикливать только сообщения в определенной категории (типа пользовательских сообщений) с идентификатором 31, я добавил "'tag_id' => 31" после "'posts_per_page' => -1"

<?php $args = array(
            'post_type' => 'kana_portfolio',
            'meta_key'   => 'choose_layout_2',
            'meta_value' => 'layout-1',
            'posts_per_page' => -1,
            'tag_id' => 31
        );
        $posts = get_posts($args);
        $term_array = array();
        $portfolio_term_array = array();
        foreach ( $posts as $post ) : setup_postdata( $post );
            $terms = wp_get_post_terms( get_the_ID(), 'kana_genre');
            foreach($terms as $term){
                $term_array[$term->slug] = $term->name;
                $portfolio_term_array[] = $term->slug;
            }
        endforeach;
        wp_reset_postdata(); ?>

[EDIT]
У меня есть еще один цикл ниже на странице, и я попытался вставить массив 'cat' => 31 tax_query

                <?php $number_posts_to_display = get_field('number_of_posts_to_display');
                $display_order = get_field('post_display_order');
                $portfolio = array(
                    'post_type' => 'kana_portfolio',
                    'posts_per_page' => $number_posts_to_display,
                    'order' => $display_order,
                    'meta_key'   => 'choose_layout_2',
                    'meta_value' => 'layout-1',
                    'tax_query' => array(
                        array(
                            'taxonomy' => 'kana_genre',
                            'field'    => 'slug',
                            'terms'    => $portfolio_term_array,
                        ),
                    ),
                );
                $portfolio_loop = new WP_Query($portfolio); ?>

Но ничего не отображается, как мне сделать?


person CreativiBiz    schedule 16.11.2016    source источник


Ответы (2)


если ваша категория (здесь мы говорим о настоящих категориях, категории типа таксономии ...) - 31, вы должны использовать 'cat' => 31, теги являются тегами, а не категориями .. если это помогло, дайте мне знать . Если вы пытались фильтровать теги, и это не сработало, дайте мне знать, и я внимательно изучу.

Повеселись!

person Ralph Thomas Hopper    schedule 16.11.2016
comment
Спасибо за ответ, я изменил идентификатор в кошке, но все еще не работает. - person CreativiBiz; 16.11.2016

Вместо того:

'tag_id' => 31

Попробуй это:

'tag__in' => 31
person Alex    schedule 16.11.2016