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

如何在JS文件中获取PHP函数存储的WordPress数据库值

在WordPress插件中让JS获取PHP存储的数据库值

要把PHP从数据库取出的管理员手机号传递给前端JS用于API请求,推荐使用WordPress官方的wp_localize_script方法,以下是具体实现步骤:

方法一:通过wp_localize_script传递数据(推荐)

这是WordPress标准做法,适合独立JS文件的场景:

  1. 在插件主PHP文件中注册并本地化脚本
// 注册并本地化聊天机器人JS脚本
function enqueue_chatbot_scripts() {
    // 替换为你的JS文件实际路径
    $js_path = plugin_dir_url(__FILE__) . 'js/chatbot.js';
    wp_enqueue_script('chatbot-script', $js_path, array('jquery'), '1.0', true);

    // 准备要传递给JS的数据库值
    $script_data = array(
        'adminPhone' => get_admin_phone_number()
    );

    // 将PHP数据注入到JS全局对象中
    wp_localize_script('chatbot-script', 'ChatbotConfig', $script_data);
}
add_action('wp_enqueue_scripts', 'enqueue_chatbot_scripts');
  1. 在JS文件中使用传递的值
    修改你的fetch请求,把phoneNumber替换为全局对象中的值:
fetch('https://whatgpt.up.railway.app/api/query-train-gpt', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
    },
    body: JSON.stringify({
        query: userMessage,
        number: ChatbotConfig.adminPhone
    }),
})

方法二:内联JS直接嵌入PHP值

如果你的JS代码是内联在PHP模板/插件文件中的,可以直接输出PHP值:

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 用esc_js确保输出内容符合JS语法安全规范
    const adminPhoneNumber = '<?php echo esc_js(get_admin_phone_number()); ?>';

    // 执行API请求
    fetch('https://whatgpt.up.railway.app/api/query-train-gpt', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({
            query: userMessage,
            number: adminPhoneNumber
        }),
    });
});
</script>

注意事项

  • 无论哪种方法,都要用esc_js()处理输出的字符串,防止XSS安全漏洞
  • 如果是在WordPress后台页面使用,把钩子换成admin_enqueue_scripts
  • wp_localize_script不仅能传单个值,还可以传递多个配置项,扩展性更强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:57:50