Щоб у WordPress отримати певний тип записів, відфільтрованих за кастомною таксономією (або стандартною), скористайтеся наступним сніпетом:
$Posts = get_posts(array( 'post_type' => 'my-post-type', 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'my-taxonomy', 'field' => 'slug', 'terms' => 'event' ) ), 'meta_query' => array( 'AND', array( 'type' => 'NUMERIC', 'key' => 'event_date', 'compare' => '<', 'value' => time() ), array( 'type' => 'NUMERIC', 'key' => 'is_archive', 'compare' => '==', 'value' => 0 ) ) ));
Що ми тут маємо. Перше:
'post_type' => 'my-post-type', 'order' => 'ASC',
ми шукаємо в базі даних записи типу "my-post-type".
Друге:
'tax_query' => array( array( 'taxonomy' => 'my-taxonomy', 'field' => 'slug', 'terms' => 'event' ) ),
у цей же запит додаємо фільтрацію за таксономією "my-taxonomy", slug якої дорівнює "event".
Третє:
'meta_query' => array( 'AND', array( 'type' => 'NUMERIC', 'key' => 'event_date', 'compare' => '<', 'value' => time() ), array( 'type' => 'NUMERIC', 'key' => 'is_archive', 'compare' => '==', 'value' => 0 ) )
Додаємо у фільтр обмеження за мета-полями, де дата події "event_date" менша за поточну дату, і запис не знаходиться в архіві:
'is_archive == 0'
