在wp_ajax函数中获取post_id

时间:2012-07-25 作者:janedit

我编写了一个自定义AJAX函数,其中我将一个帖子类型指定为另一个帖子类型的子类。在一个函数中,我循环浏览这些子帖子,我想更新数据库以反映post\\u父级(子帖子所属的帖子)。

问题是,我无法从任何地方获取该帖子的ID来更新db。有什么建议吗?

以下是jQuery函数:

$.ajax({
    url: ajaxurl,
    type: \'POST\',
    async: true,
    cache: false,
    dataType: \'json\',
    data: {
        action: \'new_item_save\',
        item_order: $(\'#img-sortable\').sortable(\'toArray\').toString()

    }
});
下面是PHP回调:

function save_new_img_order( $post ) {
    global $wpdb;
    $pid = $post->ID;

    $order   = explode( \',\', $_POST[ \'item_order\' ] );
    $counter = 0;
    foreach ( $order as $item_id ) {
        $wpdb->update( $wpdb->posts, array( \'menu_order\'  => $counter,
                                            \'post_parent\' => $pid,
        ), array( \'ID\' => $item_id ) );
        $counter ++;
    }
    die( 1 );
}

add_action( \'wp_ajax_new_item_save\', \'save_new_img_order\' );

2 个回复
SO网友:Sayed Taqui

这是一个老问题,但我想为其他人回答

在连接到wp\\u ajax的ajax函数中,可以做到这一点。

$url     = wp_get_referer();
$post_id = url_to_postid( $url ); 

SO网友:TheDeadMedic

ajax钩子不会传回$post 反对你的回调-它怎么会知道这样做!

您需要自己发送数据:

data:{
    action: \'new_item_save\',
    post_id: POST_ID_EITHER_PARSED_FROM_DOM_OR_PHP_ECHOED,
    item_order: $(\'#img-sortable\').sortable(\'toArray\').toString()
}
。。。然后从$_POST 在处理程序中:

function save_new_img_order() {
    $post_id = $_POST[\'post_id\'];
    ...
}

结束

相关推荐

Metabox中的Plupload-AJAX操作在类中不起作用

我正试图将WP Pluploader放入我帖子页面的元框中-根据Plupload Intergration in a meta-box? 和http://www.krishnakantsharma.com/2012/01/image-uploads-on-wordpress-admin-screens-using-jquery-and-new-plupload/我在第二个链接中的示例中实现了这一切。然而,我想把它全部放在一个类文件中。如果我把它全部打包成一个类,它就会停止工作。这都是因为:function