问题描述
如何按年份显示自定义帖子类型的档案月?
最佳解决方案
是的你可以。所有你需要的是为 wp_get_archives();
做一个过滤器,所以它接受 post_type
参数:
function my_custom_post_type_archive_where($where,$args){
$post_type = isset($args['post_type']) ? $args['post_type'] : 'post';
$where = "WHERE post_type = '$post_type' AND post_status = 'publish'";
return $where;
}
然后调用:
add_filter( 'getarchives_where','my_custom_post_type_archive_where',10,2);
每当您想通过自定义帖子类型显示归档时,只需传递 post_type 参数:
$args = array(
'post_type' => 'your_custom_post_type',
'type' => 'monthly',
'echo' => 0
);
echo '<ul>'.wp_get_archives($args).'</ul>';
次佳解决方案
你不是,Wordpress 开发人员的官方线路是,自定义帖子类型不是要做正常的普通帖子的工作,如果你需要 post 档案的日期等,那么你没有正确的做事情,你最好使用帖子格式等。
自定义帖子类型适用于网络应用程序等,同时执行某些操作,例如设置用作不同名称的辅助或并行博客的自定义帖子类型,例如。博客 vs 新闻,具有相同的能力,不是该功能的意图,而是意味着其实施中产生的其他技术问题。
如果您仍然坚持这一点,只需使用自定义分类法和发布格式是不够的,您可以在 functions.php 中添加重写规则,并将某些 URL 中的年/月档案重定向到归档页面,然后检查自定义如果您在重写规则中指定了变量并加载其他模板,请确保在重写规则中设置适当的值。
第三种解决方案
编辑 – > 虽然这个答案仍然适用于< WP4.4,因为 4.4 自定义帖子类型的支持现在包含在 wp_get_archives()
中
终于有一个简单,快速和简单的解决方案为 WordPress 中的自定义帖子类型的基于日期的档案!这是一个长期存在的问题,在 WP Core Trac 中是 recorded here 。
它尚未解决,但 Trac 的一个贡献者已经发布了一个 simple plugin in GitHub,这将使您能够为 CPT 提供日期归档。
安装此插件或手动添加功能代码后,您可以为 CPT 案例使用归档:
<?php wp_get_archives_cpt( 'post_type=custom_post_type' ); ?>
注意这个新功能 wp_get_archives_cpt
与标准 wp_get_archives
相同,所以你可以使用它接受的任何常规参数。但是,它只是添加了能够添加自定义帖子类型名称参数的功能。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。