You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress当日营业时间短代码无法运行,求错误排查

你的WordPress短代码问题解析与修复方案

嘿,我来帮你拆解下问题所在,你的短代码有几个关键错误,我一个个给你说明:

错误点梳理

  • add_shortcode 参数缺失:WordPress的add_shortcode()必须传两个参数——第一个是短代码标签名,第二个是对应的回调函数名。你只传了标签,导致短代码根本没绑定到函数上。
  • 变量定义顺序颠倒:你先尝试输出$openinghours[$day_today],但这两个变量都还没定义,PHP会直接抛出"变量未定义"的错误,必须先定义数组和当日星期,再调用它们。
  • 直接echo而非return:WordPress短代码的回调函数应该返回内容,而不是直接echo。直接输出会导致内容在页面错误位置加载(比如提前跑到头部),因为WordPress需要捕获返回值再插入到短代码所在的正确位置。
  • 变量名大小写不一致:PHP是大小写敏感的,你原代码用的是$openingHours,但短代码里写成了$openinghours,这会导致PHP找不到数组变量。

修复后的完整代码

function pet_hours() {
    // 先定义营业时间数组,统一变量名大小写
    $openingHours = [
        'Mon' => "Today we're open 8.30am – 6:30pm",
        'Tue' => "Today we're open 8.30am – 6:30pm",
        'Wed' => "Today we're open 8.30am – 6:30pm",
        'Thu' => "Today we're open 8.30am – 6:30pm",
        'Fri' => "Today we're open 8.30am - 6:30pm",
        'Sat' => "Today we're open 8.30am – 3:00pm",
        'Sun' => "Today we're closed"
    ];
    // 获取当日星期标识
    $day_today = date('D');
    // 返回包裹好的HTML内容,交给WordPress处理输出位置
    return '<div class="openingHours">' . $openingHours[$day_today] . '</div>';
}
// 正确绑定短代码:标签名 + 回调函数名
add_shortcode('pet_hours', 'pet_hours');

使用说明

把这段代码添加到你主题的functions.php文件里,或者用自定义代码插件(比如Code Snippets)来添加。之后在文章、页面或者小工具里,直接输入[pet_hours]就能调用这个营业时间模块了。

内容的提问来源于stack exchange,提问作者Ben Battaglia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:29:10