好的,我正在尝试通过AJAX加载帖子的内容。
下面是函数。php部件
wp_localize_script(\'ajax-script\', \'ajax_object\', array(\'url\' => $blogurl,\'path\' => $path,\'ajaxurl\' => admin_url( \'admin-ajax.php\' )));
add_action(\'wp_enqueue_scripts\', \'javascripts\');
add_action(\'wp_ajax_ajax_action\', \'ajaxify\'); // ajax for logged in users
add_action(\'wp_ajax_nopriv_ajax_action\', \'ajaxify\'); // ajax for not logged in users
function ajaxify() {
$post_id = $_POST[\'post_id\'];
$post_data = get_post($post_id);
setup_postdata( $post );
echo json_encode($post_data);
}
这里是jQuery部分
$("a.ajaxed").click(function(event) {
event.preventDefault();
doAjaxRequest();
});
function doAjaxRequest(){
jQuery.ajax({
type: \'POST\',
url: ajax_object.ajaxurl,
data: ({action : \'ajaxify\',
post_id: $(this).attr(\'id\')
}),
dataType: \'JSON\',
success:function(data){
console.log(data.post_title);
}
});
}
但当我查看控制台时,它输出0,我看不到内容。我错过了什么?
最合适的回答,由SO网友:Milo 整理而成
如果您的javascriptaction
已命名ajaxify
, 那么这些应该是:
add_action(\'wp_ajax_ajaxify\', \'ajaxify\'); // ajax for logged in users
add_action(\'wp_ajax_nopriv_ajaxify\', \'ajaxify\'); // ajax for not logged in users
挂接的操作是
wp_ajax_(nopriv_)
还有你的
action
名称连接到该操作的函数可以有任何名称,因此可以是:
add_action(\'wp_ajax_ajaxify\', \'some_random_function_name\');
add_action(\'wp_ajax_nopriv_ajaxify\', \'some_random_function_name\');