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

WordPress短代码对未登录用户不更新页面问题排查

WordPress短代码未登录用户不更新问题排查与解决

一、先排查缓存问题(最常见原因)

WordPress默认对未登录用户启用页面缓存,登录用户会跳过缓存,这大概率是问题根源:

  • 临时禁用所有缓存插件(比如WP Rocket、W3 Total Cache等),测试未登录状态下是否能看到随机内容更新
  • 若用了CDN服务,暂停CDN缓存验证效果
  • 给短代码添加缓存排除逻辑,在函数开头加入代码强制页面不缓存:
    function php_hybridiser() { 
        nocache_headers(); // 禁用页面缓存
        // 原有代码...
    }
    

二、文件权限检测与修复

登录和未登录状态下PHP运行权限可能不同,可在代码中加入权限检查,同时优化代码逻辑:

function php_hybridiser() { 
    // 定义文件路径
    $file1 = "/home/aegiswebdesign/htdocs/aegiswebdesign.uk/list_1.txt";
    $file2 = "/home/aegiswebdesign/htdocs/aegiswebdesign.uk/list_2.txt";

    // 检查文件是否可读
    if (!is_readable($file1)) {
        return "错误:无法读取list_1.txt,请检查文件权限或路径";
    }
    if (!is_readable($file2)) {
        return "错误:无法读取list_2.txt,请检查文件权限或路径";
    }

    // 读取文件并随机取行,同时去除换行符
    $f_contents = file($file1, FILE_IGNORE_NEW_LINES);
    $item_1 = $f_contents[array_rand($f_contents)];

    $f_contents = file($file2, FILE_IGNORE_NEW_LINES);
    $item_2 = $f_contents[array_rand($f_contents)];

    return $item_1 . " " . $item_2;
}
add_shortcode('hybridiser', 'php_hybridiser');

服务器文件权限建议设置:

  • 文本文件权限设为644(所有者读写,其他用户只读)
  • 文件所在目录权限设为755(所有者读写执行,其他用户读执行)

三、排查Code Snippets插件冲突

部分代码片段插件可能缓存代码或与其他插件冲突:

  • 临时禁用Code Snippets,将代码直接添加到主题functions.php中测试
  • 检查Code Snippets设置,确认是否有缓存相关选项

四、其他排查手段

  • 开启WordPress调试模式:在wp-config.php中添加以下代码,查看wp-content/debug.log中的报错信息:
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    
  • 用WordPress内置常量ABSPATH构建文件路径,避免硬编码绝对路径出错:
    $file1 = ABSPATH . "list_1.txt"; // 假设文件在网站根目录
    

内容的提问来源于stack exchange,提问作者Ian Rex-Hawkes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:05:06