所有ajax请求都应该通过handy/wp-admin/admin-ajax.php
文件
它与伟大的WP挂钩系统配合使用。因此,您在请求中发送一个“操作”,并将其作为操作的一部分,将函数挂接到该操作中。
那么,假设您的ajax调用如下所示(使用jQuery)
jQuery(\'a.ajax\').click(function(e){
data = {
\'action\': \'wpse31321_action\',
\'story\': 1 // IDs are easier to deal with...
}
jQuery.get(
\'http://www.yoursite.com/wp-admin/admin-ajax.php\',
data,
function(resp){
// do stuff with the response.
}
);
e.preventDefault();
});
然后,在您的函数中。php文件或插件,您需要连接到
wp_ajax_wpse31321_action
和
wp_ajax_nopriv_wpse31321_action
. 这是完成这项工作的部分:您可以访问挂钩函数中的完整WP api。获取帖子,随便什么。
wp_ajax_[some_action]
用于登录用户。wp_ajax_nopriv_[some_action]
是给其他人的。[some_action]
当然,是您随请求一起发送的操作。wpse31321_action
在我们的示例中。
<?php
add_action( \'wp_ajax_wpse31321_action\', \'wpse31321_ajax\' );
add_action( \'wp_ajax_nopriv_wpse31321_action\', \'wpse31321_ajax\' );
function wpse31321_ajax()
{
// you have access to $_REQUEST, $_POST and $_GET here...
if( isset ( $_REQUEST[\'story\'] ) )
{
$story = get_post( (int) $_REQUEST[\'story\'] );
if( ! $story ) die( \'-1\' );
echo $story->post_content;
die(); // Always kill the script after echoing out what you need.
}
else
{
die( \'-1\' );
}
}
在回显数据之前,您可以执行任何操作。以上是一个非常简单的答案,没有太多的错误检查或内置的安全性。但这应该让你开始。
进一步阅读:
http://wpajax.com/
http://codex.wordpress.org/AJAX_in_Plugins
http://codex.wordpress.org/AJAX