4

WordPress 3.5 に更新した後、管理者以外のユーザーとして [メディアの追加] ボタンを使用してファイルをアップロードすると、次のエラーが発生するようになりました。

エラー: アップロードでエラーが発生しました。後でもう一度やり直してください。

画像のアップロードが完了したように見えますが、最後にこのエラー メッセージが表示されます。

これは、管理者には発生せず、他の役割のみに発生します。他のロールに完全な管理機能を付与しようとしましたが、それでもエラーが表示されます。

これはバグですか?または、何か不足していますか?

4

5 に答える 5

8

多くの試行錯誤の末、ようやく自分に合った解決策を見つけました。

まず、カスタム ユーザー ロールのファイルをアップロードするには、次のロール機能が必要であることがわかりました。

$capabilites = array(

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

);

これらが特に必要な理由はわかりませんが、それらがないとエラーが発生し続けました。

次に、管理者以外のユーザーがダッシュボードにアクセスできないようにするために使用していた機能を更新する必要がありました。

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 );

以前は、media-upload.php をチェックしていましたが、新しいメディア アップローダーは async-upload.php を使用します。

したがって、基本的に、これにより、管理者以外のユーザーは、ダッシュボードへのアクセスを許可せずに、フロントエンドから新しいメディア アップローダーを使用できるようになります。

また、メディア ライブラリへのアクセスも制限されますが、これも私にとって重要でした。

于 2013-03-08T11:03:45.990 に答える
1

これは、いくつかの異なる要因によって引き起こされる可能性があります。これは通常、次のことを示唆しています。

ファイルが大きすぎます

最大許容ファイルサイズを増やす方法については、このスレッドを参照してください。

ディスク・スペースの不足

サーバーのハードドライブがいっぱいになっていないか確認してください。

書き込み権限が不十分です

PHP と Web サーバーに wp-uploads フォルダーへの書き込み権限があることを確認してください。

于 2013-02-08T08:32:46.540 に答える
1

PHPを5.3に更新した後、このエラーが発生しました。私の問題は short_open_tag でした。

デフォルトではオフでした。有効にしましたが、すべて問題ありません。

于 2013-11-27T23:37:29.137 に答える
0

私は私の問題を解決します、

sudo apt-get update
sudo apt-get install php5-gd

このメッセージは、アップロードの瞬間にfirebug inspectで取得します。

   GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD libraryGD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library{"success":true,"data":{"id":17,"title":"yoshi","filename":"yoshi1.jpg"

だから私はアップロードの瞬間にfirebugでこれを取得します。

于 2015-03-01T02:46:09.473 に答える