Подсчитывайте сообщения с определенным термином мета
У меня есть пользовательский тип записи, который имеет множество таксономий. В интерфейсе пользователь может присвоить таксономии значение "категория" (term_meta) - аппаратное или программное обеспечение.
Я хотел иметь возможность подсчитать, сколько было сообщений term_meta.
$base_array = array(
'posts_per_page' => -1,
'fields' => 'ids',
'post_type' => 'cpt',
'post_status' => array('publish'),
'date_query' => array(
'before' => 'next Saturday',
'after' => 'last Monday'
)
);
$base = get_posts($base_array);
echo count($base);
Это даст мне общее количество сообщений за неделю. Но я хочу посчитать сообщения, в которых есть таксономия с термином_meta "оборудование" или "программное обеспечение".
Возможно ли это?
1
2 answers
$base_array = array(
'posts_per_page' => -1,
'fields' => 'ids',
'post_type' => 'cpt',
'post_status' => array('publish'),
'date_query' => array(
'before' => 'next Saturday',
'after' => 'last Monday'
),
'tax_query' => array(
'taxonomy' => 'pas_here_taxonomy'
'field' => 'slug',
'terms' => array( 'hardware', 'software'),
'operator' => 'IN'
)
);
$base = get_posts($base_array);
echo count($base);
2
Author: BlueSuiter, 2016-10-28 12:31:48
Итак, глядя на какой-то другой код, который у меня есть, я чувствую, что это было бы правильным решением. Я не тестировал его, но чувствую, что он будет работать так, как мне было нужно (больше не нужно считать типы).
$base_array = array(
'posts_per_page' => -1,
'fields' => 'ids',
'post_type' => 'cpt',
'post_status' => array('publish'),
'date_query' => array(
'before' => 'next Saturday',
'after' => 'last Monday'
)
);
$base = get_posts($base_array);
foreach( $base as $post_id ) {
$term_meta = get_term_meta( post_id, 'tax_term_type', true );
$term_hardware += ($term_meta == 'term_meta_hardware') ? 1 : 0;
$term_software += ($term_meta == 'term_meta_software') ? 1 : 0;
}
echo count( $term_hardware );
echo count( $term_software );
1
Author: markb, 2016-11-01 23:47:39