Wordpress自定义页面动态调用仅适用于localhost

时间:2015-02-13 15:04:40

标签: php jquery ajax wordpress simplemodal

我使用Wordpress和自定义页面(ajax-handler)在一个简单的模态对话框中打开每个帖子,但是发生了一些奇怪的事情。该代码在我的本地主机上运行良好,但是当它在服务器上时,每次我点击帖子打开它时,服务器都会返回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”

它们都不像localhost那样工作。有什么想法吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

实际上,我对你在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' );