WordPress中如何用PHP判断周六周日以实现周末专属消息输出?
WordPress 站点按周末条件输出指定内容的PHP实现方案
- 核心判断逻辑和你当前用的JS规则完全对齐,PHP 内置时间函数
date('w')返回值的定义和JS的getDay()完全一致:返回数字0代表周日,6代表周六,1-5对应周一到周五。 - 相比纯JS前端渲染的方案,服务端PHP输出的内容不会出现脚本未加载完成时的内容闪烁、脚本被浏览器拦截时直接失效的问题,对站点SEO更友好。
基础判断实现
直接在需要输出内容的模板位置(比如主题页头、侧边栏、页面模板文件)插入以下代码即可完成判断:
// 获取WordPress站点当前配置时区下的星期值 $week_day = intval( date('w') ); // 匹配周六(6)、周日(0)的条件 if ( $week_day === 0 || $week_day === 6 ) { // 替换为你需要在周末展示的指定消息 echo '<div class="notice">周末好,本站周末仅保留基础功能运行</div>'; }
注意事项
- 上述代码自动匹配WordPress后台「设置-常规」中配置的站点时区,不需要手动调整时区参数,只要后台时区设置正确,就不会出现时间偏差导致的判断错误。
- 避坑提醒:很多教程容易混淆PHP
date()函数的两个星期类参数,写判断时要注意对应规则:date('w'):返回0(周日)-6(周六),和JS的getDay()规则完全匹配,适合对接你已经调试好的JS判断逻辑date('N'):返回1(周一)-7(周日),是ISO标准格式,用这个参数写判断时要调整匹配条件,不然会出现判断错位
- 如果需要更灵活的调用方式,可以把判断逻辑封装成短代码,加到主题的
functions.php文件中,实现任意页面插入即可触发:
add_shortcode( 'show_weekend_notice', function() { $week_day = intval( date('w') ); if ( $week_day === 0 || $week_day === 6 ) { // 短代码触发时返回周末的指定消息 return '<p>周末专属提示内容</p>'; } // 非周末返回空值,不输出任何内容 return ''; });
封装完成后,在任意文章、页面的编辑器中插入[show_weekend_notice],就可以自动完成周末判断和内容输出,不需要反复修改主题模板文件。
补充:你之前调试好的JS方案逻辑和PHP判断规则完全对齐,切换实现方式时不需要调整原有的星期匹配逻辑,只是把内容渲染从前端迁移到服务端,不依赖用户端的脚本执行权限,稳定性更强。
内容的提问来源于stack exchange,提问作者robert0
相关产品推荐
相关产品推荐

