Wordpress 自定义页面动态调用仅适用于本地主机

Wordpress custom page dynamic call only works on localhost

我正在使用带有自定义页面(ajax-处理程序)的 Wordpress 在简单的模式对话框中打开每个 post,但发生了一些奇怪的事情。该代码在我的本地主机上运行完美,但是当它在服务器上时,每次我单击 post 打开它时,服务器 returns 出现 404(未找到)错误。

我遵循了 this 教程,这是我的代码:

$('#content article').on('click', function(e){
   var id = $(this).attr('rel');
   $('<div id="popup"></div>').hide().appendTo('body').load('<?php echo home_url(); ?>/ajax-handler/?id='+id).modal({ });
});

我已经尝试在没有 / 之前更改路径?并尝试在文件名末尾添加“.php”

None 其中的工作方式类似于本地主机。有什么想法吗?

非常感谢!

实际上,我有点惊讶您的代码在 localhost 上运行。也许与您的 .htaccess 有关。

在 WordPress 中执行 Ajax 的标准方法是将请求发送到标准 WP Ajax 处理程序,如下所示:

$('#content article').on('click', function(e){
   var id = $(this).attr('rel');
   $('<div id="popup"></div>').hide().appendTo('body').load( '<?php echo admin_url('admin-ajax.php'); ?>, {id: id}).modal({ });
});

然后您添加一个操作来处​​理 ajax 调用。如果您的应用程序是前端应用程序,那么这将类似于:

function ajax_handler() {
    if ($_POST['id']) {
        // Probably something like what you already have
    }
}
add_action( 'wp_ajax_nopriv_my_action', 'ajax_handler' );