首页文章显示统一主题默认日期而非单篇发布日期的修复代码求助
修复首页文章日期显示一致的问题
问题分析
从你提供的代码片段来看,所有文章显示同一日期的核心原因是循环上下文未正确获取单篇文章的ID,导致get_the_ID()始终返回同一个值(通常是首页本身的ID),最终所有文章复用了同一个日期数据。
修复方案
你可以尝试以下两种修改方式,任选其一即可:
方式1:直接读取循环内文章的原生日期
将日期相关代码行替换为:
echo '<a href="' . esc_url(tnews_blog_date_permalink()) . '"><i class="fal fa-calendar-days"></i>' . esc_html(date('d M, Y', strtotime($post->post_date))) . '</a>';
这种方式直接调用循环内$post对象的原生发布日期,绕开可能失效的get_the_date()调用,确保每篇文章使用自身的日期数据。
方式2:让get_the_date自动绑定当前文章
如果你的自定义循环内已经调用了setup_postdata( $post ),可以简化代码为:
echo '<a href="' . esc_url(tnews_blog_date_permalink()) . '"><i class="fal fa-calendar-days"></i>' . esc_html(get_the_date('d M, Y')) . '</a>';
去掉get_the_ID()参数后,get_the_date()会自动使用循环内的全局$post对象,从而正确获取每篇文章的日期。
额外检查点
若修改后问题仍存在,请确认文章循环的正确性:
- 自定义循环(如
WP_Query)必须在循环体内调用setup_postdata( $post ),否则全局$post对象不会更新为当前文章 - 循环结束后需调用
wp_reset_postdata()(你的代码已包含此步骤,无需调整)
内容的提问来源于stack exchange,提问作者user25467320
相关产品推荐
相关产品推荐

