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

时间:2012-07-19 作者:deadlyhifi

我正试图将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 g_plupload_action()
{ 
    // check ajax noonce
    $imgid = $_POST["imgid"];
    check_ajax_referer($imgid . \'pluploadan\');

    // handle file upload
    $status = wp_handle_upload($_FILES[$imgid . \'async-upload\'], array(\'test_form\' => true, \'action\' => \'plupload_action\'));

    // send the uploaded file url in response
    echo $status[\'url\'];
    exit;
}
如果此函数位于类之外并通过以下方式调用,则此函数有效:

add_action(\'wp_ajax_plupload_action\', "g_plupload_action");
但在课堂上,他打电话给:

add_action(\'wp_ajax_plupload_action\', array($this, \'g_plupload_action\'));
返回数据为0.

我需要在中做什么function g_plupload_action() 让它发挥作用?

1 个回复
最合适的回答,由SO网友:deadlyhifi 整理而成

啊哈,我打电话给wp_ajax_plupload_action 从我的页面内进行条件检查,如下所示:

function __construct()
{
    global $pagenow;

    $pages = array(\'post.php\', \'post-new.php\');

    if (in_array($pagenow, $pages)) :

        add_action(\'add_meta_boxes\', array($this, \'dhf_video_meta_box\'));
        add_action(\'admin_print_scripts\', array($this, \'video_meta_js\'));
        add_action(\'admin_head\', array($this, \'plupload_admin_head\'));
        add_action(\'admin_print_scripts\', array($this, \'video_meta_css\'));
        add_action(\'wp_ajax_plupload_action\', array($this, \'plupload_action\'));

    endif;
}
你不会想那样做的。采取add_action(\'wp_ajax_plupload_action\', array($this, \'plupload_action\')); 除此之外,一切都恢复正常。

结束

相关推荐

获取AJAX搜索结果的模板问题

我正在尝试使用ajax将搜索结果放入div中。问题是我在说undefined function have_posts() 访问搜索模板时。它还对get_header() 在搜索结果中。php,但我把它取出来了。下面是我如何设置它的。 <div id=\"my_search\"> <form role=\"search\" method=\"get\" id=\"searchform\" action=\"http://myurl.com/\" > &