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

如何在JavaScript中获取WordPress站点首页URL?

在WordPress Ajax JavaScript中动态获取首页URL的方法

我来帮你搞定这个问题——不用硬编码首页URL,而是通过WordPress的官方方法动态获取,这样你的代码在切换部署环境(比如本地测试到线上服务器)时,不用手动修改URL,更健壮可靠。

第一步:在PHP中传递首页URL到JavaScript

WordPress推荐使用wp_localize_script函数来把PHP变量传递给前端JS,这是最规范的做法。你可以在主题的functions.php或者自定义插件里添加这段代码:

function enqueue_my_custom_ajax_script() {
    // 先注册你的JavaScript文件(如果还没注册的话)
    wp_register_script(
        'custom-ajax-script',
        get_template_directory_uri() . '/js/your-script-file.js', // 替换成你的JS文件实际路径
        array('jquery'),
        '1.0',
        true
    );

    // 把需要的PHP变量传递到JS,生成全局对象MyAjax
    wp_localize_script(
        'custom-ajax-script',
        'MyAjax',
        array(
            'home_url' => get_home_url(), // 这里就是你要的动态首页URL
            'ajax_url' => admin_url('admin-ajax.php') // 顺便动态获取admin-ajax.php地址,不用硬编码
        )
    );

    wp_enqueue_script('custom-ajax-script');
}
add_action('wp_enqueue_scripts', 'enqueue_my_custom_ajax_script');

第二步:修改你的JavaScript代码

现在你可以在JS里直接调用MyAjax.home_url来获取首页URL,同时用MyAjax.ajax_url替换硬编码的admin-ajax地址:

<script>
$j = jQuery.noConflict();
$j(document).ready(function(){
    $j('.new_post_btn').click(function(){
        var dataString = {
            'action': 'new_post_action',
            'post_status': 'draft',
        };
        
        $j.ajax({
            type: "POST",
            url: MyAjax.ajax_url, // 动态获取ajax处理地址
            data: dataString,
            success: function(msg){
                if(msg !== 'false') {
                    msg = msg.substring(0, msg.length - 1);
                    // 用动态首页URL拼接跳转地址
                    window.location = MyAjax.home_url + '/wp-admin/post.php?post=' + msg + '&action=elementor';
                }
            }
        });
    });
});
</script>

为什么要这么做?

  • 避免硬编码URL带来的维护问题:如果你的站点域名、目录结构变化,不需要手动修改JS里的URL,代码自动适配。
  • 遵循WordPress开发规范:wp_localize_script是官方推荐的PHP与JS数据交互方式,比直接输出全局变量更安全、更符合最佳实践。
  • 顺便优化了admin-ajax.php的地址获取:用admin_url('admin-ajax.php')动态生成,同样避免硬编码的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:48:36