我需要写信a function to get all the categories for a given year. 由于分类法的创建日期没有存储在数据库中,我真的不知道该怎么做。我最初的想法是获取给定年份的所有帖子,并以某种方式找到与这些帖子相关的所有类别,但我不知道如何做到这一点,这听起来非常缓慢。也许我可以写一些SQL,但我对PHP更为精通。再次回到函数,我想它应该是这样的:
function get_categories_by_year($year) {
// Do stuff...
return $array_of_categories_in_year;
}
这实际上是一种自定义分类法,但由于类别是默认的层次分类法,因此我决定将其用作示例。如果相关的话,我很乐意提供更多关于输出应该是什么样子的信息。谢谢你的帮助!
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成
我会用SQL查询来实现这一点。我想用PHP做会有点慢。
此功能应完成以下工作:
function get_categories_from_year($year) {
$sql = "select term.*
from {$wpdb->terms} term
inner join {$wpdb->term_taxonomy} tax on (term.term_id = tax.term_id)
inner join {$wpdb->term_relationships} relation on (tax.term_taxonomy_id = relation.term_taxonomy_id)
inner join {$wpdb->posts} post on (relation.object_id = post.ID)
where tax.taxonomy = \'category\' and YEAR(post.post_date) = %d";
return $wpdb->get_results( $wpdb->prepare($sql, $year) );
}