• 解決済 sz1320

    (@sz1320)


    WP管理画面のメディアアップロードにおいて、
    mimeで判別し、ファイル形式の許可/不許可を設定出来ることは理解しているのですが、

    例えば、白黒写真だった場合はアップロードせず、警告を表示することは可能でしょうか?

    $img = getimagesize('sample.jpg');
    if($img['channels'] == 2) {
    echo '白黒はだめですよ';
    }

    のような判別を通して、処理を行いたいのですが、
    どこに処理を設ければいいやら分からず悩んでおります。

    wp-includes/functions.php をいじらずフックなど出来れば良いなと思いますが。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック投稿者 sz1320

    (@sz1320)

    すみません。。。
    投稿カテゴリを激しく間違えているので、移行してもらえると助かります。

    モデレーター gatespace

    (@gatespace)

    ※使い方全般に移動しました

    ue

    (@ue)

    function get_my_attachment_imagesize($id) {
        $attachment = get_post($id);
        $img = getimagesize( $attachment->guid );
        if ( 2 == $img['channels'] ){
            // 白黒はだめですよ
            // 画像を削除する処理 wp_delete_attachment($attachment_id)
        }
    }
    add_action("add_attachment", "get_my_attachment_imagesize");

    こんな感じですかねぇ

    もしかしたら、もっと適切なフックがあるかもしれません。
    プラグイン API/アクションフック一覧 – WordPress Codex 日本語版
    プラグイン API/フィルターフック一覧 – WordPress Codex 日本語版

    トピック投稿者 sz1320

    (@sz1320)

    gatespaceさま

    移動ありがとうございます。

    ueさま

    ありがとうございます。
    頂いたコードをトライ&エラーでごにょごにょしてみました。
    画像を削除する行程まではすんなり行くのですが、
    その後にメッセージを出したいと思っております。

    デフォルトであるような、
    「ファイルを削除しました。」や「添付メディアの保存の際にエラーが発生しました。」のようなかたちが望ましいのですが、「wp_upload_tabs」なんかに絡めるのでしょうか・・・

    Function Reference/file is displayable image

    このへんも見たのですが、結果としてどう反映されているのか釈然としませんでした。

    function file_is_displayable_image($path) {
    	$info = @getimagesize($path);
    	if ( empty($info) )
    		$result = false;
    	elseif ( !in_array($info[2], array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) )	// only gif, jpeg and png images can reliably be displayed
    		$result = false;
    	else
    		$result = true;
    
    	return apply_filters('file_is_displayable_image', $result, $path);
    }

    もう少し考えてみます。

    nobita

    (@nobita)

    こんにちは

    画像を削除する行程まではすんなり行くのですが、
    その後にメッセージを出したいと思っております。

    wp_die('もう やめて');

    とか、使えませんか?

    トピック投稿者 sz1320

    (@sz1320)

    nobitaさま

    ありがとうございます。
    ライブラリの画面にエラーを出力したかったのですが、
    wp_die('もう やめて');
    これで充分な気がしてきました。

    これにて解決としたいと思います。
    みなさまありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「画像アップロード時にエラーを出力したい」には新たに返信することはできません。