Wordpress:上传时出错

HWD*_*HWD 4 wordpress upload wordpress-3.5

更新到WordPress 3.5后,我在使用添加媒体按钮作为非管理员用户上传文件时开始出现以下错误:

错误:上传时出错.请稍后再试.

图像似乎完成上传,但最后会出现此错误消息.

管理员不会发生这种情况,只会发生其他角色.我甚至尝试过赋予其他角色完整的管理功能,但错误仍然存​​在.

这是一个错误吗?或者我错过了什么?

HWD*_*HWD 8

经过多次反复试验,我终于找到了一个适合我的解决方案.

首先,我发现上传自定义用户角色的文件需要以下角色功能:

$capabilites = array(

    'read'                  => true,
    'upload_files'          => true,
    'edit_published_pages'  => true,
    'edit_others_pages'     => true

);
Run Code Online (Sandbox Code Playgroud)

我不确定为什么这些是特别需要的,但错误一直没有它们.

其次,我必须更新我正在使用的功能,以防止非管理员用户访问控制板:

function redirect_nonadmin_fromdash(){

    if($_SERVER['PHP_SELF'] == '/wp-admin/async-upload.php'){

        /* allow users to upload files */

        return true;

    } else if(get_user_role() != 'administrator'){

        /* custom function get_user_role() checks user role, 
        requires administrator, else redirects */

        wp_safe_redirect(home_url());
        exit;

    }

}

add_action( 'login_form_login', 'redirect_nonadmin_fromdash' );
add_action( 'admin_init', 'redirect_nonadmin_fromdash', 1 );
Run Code Online (Sandbox Code Playgroud)

以前,我正在检查media-upload.php,但新媒体上传器使用async-upload.php.

因此,从本质上讲,这允许非管理员用户从前端使用新的媒体上传器,而不允许他们访问仪表板.

它还限制了他们访问媒体库,这对我来说也很重要.