Запрос и отображение сообщений в таксономии, пользовательский тип сообщения - PullRequest
1 голос
/ 24 сентября 2019

У меня есть пользовательский тип записи с именем resources:

register_post_type(
    'resources',
    tp_build_post_args(
        'resources', 'Resource', 'Resources',
        array(
            'menu_icon'     => 'dashicons-welcome-write-blog',
            'menu_position' => 20,
            'public'      => true,
            'supports' => array('editor', 'title','author','thumbnail', 'revisions'),
            'taxonomies' => array('sector', 'subject', 'type'),
        )
    )
);

И таксономия с именем type:

register_taxonomy(  
    'type', 
    'type', 
    array(  
        'hierarchical' => true,  
        'label' => 'Type',  
        'query_var' => true,
        'rewrite' => array(
            'slug' => 'type', 
            'with_front' => false 
        ) 
    )
);

Тип может быть одним из следующих:

  • Блог
  • Новости
  • Вебинар

Я пытаюсь использовать wp_query для отображения всех сообщений в resources сtype «Новости».Тем не менее, он возвращает сообщения все сообщения.

Где мой подход разваливается:

$card_count = 4;
$resource_type = 'News';

$args = array(  
    'post_type' => 'resources',
    'post_status' => 'publish',
    'posts_per_page' => $card_count,
    //'cat' => $resource_type,
    'tax_query' => array(
        array(
            'taxonomy' => 'type',
            'terms' => $resource_type,
        )
    )
);

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Я предполагаю, что вам нужно указать, что то, что вы ищете, является name таксономии, оно может искать ID по умолчанию.

$args = array(  
'post_type' => 'resources',
'post_status' => 'publish',
'posts_per_page' => $card_count,
//'cat' => $resource_type,
array(
        'taxonomy'         => 'type',
        'terms'            => $resource_type,
        'field'            => 'name',
        'operator'         => 'IN',
        'include_children' => true,
    )
);

вы можете прочитатьдокументы, чтобы лучше понять - или, если вы хотите немного обмануть, это хороший генератор: https://generatewp.com/wp_tax_query/

0 голосов
/ 24 сентября 2019

Попробуйте:

'tax_query' => array( array( 'taxonomy' => 'type', 'terms' => $resource_type, 'field' => 'name', // or 'slug' 'operator' => 'IN' ) ),

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...