Имя категории эха, если отмечено в списке сообщений - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь получить все категории, которые прикреплены к пользовательскому типу записи в Wordpress.

У меня есть пользовательский тип сообщения с именем doc_pipeline и пользовательская таксономия с именем tax_pipeline. Я часами искал это и не могу собрать правильные функции, чтобы это произошло. Чтобы повторить, мне нужно получить имя категории, которая прикреплена к пользовательскому типу поста, только если он отмечен. Должно быть довольно просто, но я совсем растерялся.

    $args = array(
        'post_type' => 'doc_pipeline',
        'taxonomy' => 'tax_pipeline',
        'posts_per_page' => -1
    );

    $categories = get_categories( $args );

    $posts = get_posts($args);

foreach($posts as $post) {
   var_dump(is_object_in_term( $post->ID, 'tax_pipeline', 'doc_pipeline'));
}

1 Ответ

1 голос
/ 24 апреля 2020

Чтобы получить название категории поста по идентификатору поста, вы должны использовать его следующим образом. у вас уже есть идентификатор сообщения, поэтому вам не нужно передавать тип сообщения.

$cat_array = wp_get_post_terms($post->ID, 'tax_pipeline', array('fields'=>'names'));

и

// Чтобы удалить дублирующую категорию из l oop, попробуйте это.

$unique_terms = array(); // instead of $dupe = 0;

while ( $wp_query->have_posts() ) : $wp_query->the_post();
global $post;
    //Ok, Then you have to use like this in your loop.
    $cat_array  = wp_get_post_terms( $post->ID, 'tax_pipeline', array( 'fields' => 'all' ) );
    foreach( $cat_array as $term ) :
        if( ! in_array( $term->term_id, $unique_terms ) ):
            array_push( $unique_terms, $term->term_id );
            echo $term->name;
        endif;
    endforeach; 
endwhile;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...