尝试通过AJAX加载帖子内容

时间:2012-08-11 作者:Gab

好的,我正在尝试通过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,我看不到内容。我错过了什么?

1 个回复
最合适的回答,由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\');

结束

相关推荐

让jQuery AJAX在WordPress中工作(GET-1)

我正在尝试了解如何使用jQuery$.ajax() 对于项目。我使用从中学到的知识设置此测试TutsPlus.com. 除了我得到一个-1 已返回。所以我得到了警报Success: -1 和#test-div1 填充了-1, 而不是Hello Everyone!.My HTML:<input type=\"hidden\" name=\"GreetingAll\" id=\"GreetingAll\" value=\"Hello Everyone!\" /> <input c