Event post type如何在主页面展示事件日期而非文章发布日期
方案1:修改主题列表模板(可控性最高)
找到你主题控制主页文章列表输出的模板文件(通常为index.php、home.php),定位到原有输出发布日期的代码段(一般调用the_date()或get_the_date()函数),替换为以下逻辑即可:
// 仅对event自定义文章类型替换为举办日期 $event_date = get_post_meta( get_the_ID(), 'event_date', true ); if ( get_post_type() === 'event' && !empty($event_date) ) { // 日期格式可根据主题原有显示规则调整 echo date_i18n( 'Y年m月d日', strtotime( $event_date ) ); } else { // 普通文章保留发布日期输出 the_date(); }
方案2:使用过滤器动态替换(无需修改模板文件)
如果不想改动主题模板,可以直接在主题的functions.php文件中添加如下代码,通过WordPress内置的过滤器自动替换Event类型文章的日期输出:
add_filter( 'get_the_date', 'custom_event_date_replace', 10, 3 ); function custom_event_date_replace( $date, $format, $post ) { // 判断当前文章为event类型且存在自定义举办日期 if ( $post->post_type === 'event' ) { $event_date = get_post_meta( $post->ID, 'event_date', true ); if ( !empty($event_date) ) { return date_i18n( $format, strtotime( $event_date ) ); } } return $date; }
配置说明
- 代码中的
event需替换为你自定义文章类型的别名,和注册时填写的Post Type Key完全一致即可 - 代码中的
event_date需替换为你实际存储事件举办日期的自定义字段键名,如果你使用ACF等自定义字段插件创建字段,对应填写你设置的字段名即可 - 如果你使用的是WordPress块主题,上述过滤器方案依然可以正常生效,无需调整站点编辑器的模板设置
内容的提问来源于stack exchange,提问作者Santiago Romero
相关产品推荐
相关产品推荐

