Чтобы получить название категории поста по идентификатору поста, вы должны использовать его следующим образом. у вас уже есть идентификатор сообщения, поэтому вам не нужно передавать тип сообщения.
$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;