WordPress API没有可用于执行此操作的函数。您可以执行以下操作之一:
使用$wpdb
并创建一个自定义SQL表来检索过去12小时内发布的帖子的术语。这种方法唯一的问题是if (短期内不太可能)WordPress将更改其数据库方案,您可能需要更新SQL语句使用get_posts()
若要在过去12小时内发布帖子,请循环浏览并退出其条款。这里的缺点是其效率略低于(1)(2)非常简单,所以我将省略细节。以下是(1)的(完全未测试)尝试:
function wpse144088_get_latest_terms(){
$last_12_hours = new DateTime( \'-12 hours\' );
$sql = $wpdb->prepare("
SELECT DISTINCT t.*
FROM {$wpdb->terms} AS t
INNER JOIN {$wpdb->term_taxonomy} AS tt
ON t.term_id = tt.term_id
JOIN {$wpdb->term_relationships} AS tr
ON tr.term_taxonomy_id = tt.term_taxonomy_id
JOIN {$wpdb->posts} AS p
ON p.ID = tr.object_id
WHERE tt.taxonomy IN (\'cause\')
AND p.post_type = \'reasons\'
AND p.post_status = \'publish\'
AND p.post_date_gmt > %s
ORDER BY t.name ASC;",
$last_12_hours->format( \'Y-m-d H:i:s\' )
);
$recent_terms = $wpdb->get_results( $sql );
return $recent_terms;
}