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

WordPress如何通过URL调用functions.php中定义的函数

WordPress访问自定义URL触发指定函数实现方案

你不需要修改WordPress核心文件,只需要在主题的functions.php中追加少量代码、刷新固定链接规则即可实现需求。

具体操作步骤

  • 保留你已经写好的folder_contents函数,在同文件内追加重写规则注册、请求拦截的相关代码,完整代码参考如下:
// 注册自定义路径的重写规则
add_action('init', function () {
    add_rewrite_rule('^folder_contents/?$', 'index.php?custom_action=folder_contents', 'top');
});

// 注册自定义查询参数,避免被WordPress过滤
add_filter('query_vars', function ($vars) {
    $vars[] = 'custom_action';
    return $vars;
});

// 拦截前端请求,匹配到目标路径时直接执行对应函数
add_action('parse_request', function ($wp) {
    if (array_key_exists('custom_action', $wp->query_vars) && $wp->query_vars['custom_action'] === 'folder_contents') {
        folder_contents();
        exit;
    }
});

// 你原有编写的函数无需修改,保留即可
function folder_contents() {
    echo "Hello world";
    // 此处填写你的业务逻辑代码
    die(); 
}
  • 代码添加完成后,登录WordPress后台,进入「设置」-「固定链接」页面,不需要调整任何现有配置,直接点击页面底部的「保存更改」按钮,刷新重写规则,否则访问目标路径会返回404错误。

注意事项

禁止通过直接访问主题目录下functions.php文件路径的方式运行代码,这种方式不会加载WordPress核心运行环境,所有依赖WP内置能力的函数都会报错,同时存在严重安全隐患。

简易替代方案

如果你对URL的纯路径格式没有强制要求,可以用WordPress内置的公开动作钩子实现,不需要刷新固定链接,代码量更少:

// 支持已登录、未登录的所有访客访问触发
add_action('wp_ajax_nopriv_folder_contents', 'folder_contents');
add_action('wp_ajax_folder_contents', 'folder_contents');

配置完成后访问地址为http://myurl.com/wp-admin/admin-post.php?action=folder_contents即可直接触发对应函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 04:51:23