我使用a function 在我的主题中,阻止上载大尺寸图像文件(由于@fischi),但我想应用它strictly 到jpg/。仅限jpeg文件,因为它阻止上载。pdf文件也是。如何调整此功能?
add_filter(\'wp_handle_upload_prefilter\', \'f711_image_size_prevent\');
function f711_image_size_prevent($file) {
    // get filesize of upload
    $size = $file[\'size\'];
    $size = $size / 1024; // Calculate down to KB
    // get imagetype of upload
    $type = $file[\'type\'];
    $is_image = strpos($type, \'image\');
    // set sizelimit
    $limit = 700; // Your Filesize in KB
    // set imagelimit
    $imagelimit = 7;
    // set allowed imagetype
    $imagetype = \'image/jpeg\';
    // query how many images the current user already uploaded
    global $current_user;
    $args = array(
        \'orderby\'         => \'post_date\',
        \'order\'           => \'DESC\',
        \'numberposts\'     => -1,
        \'post_type\'       => \'attachment\',
        \'author\'          => $current_user->ID,
    );
    $attachmentsbyuser = get_posts( $args );
    if ( ( $size > $limit ) && ($is_image !== false) ) { // check if the image is small enough
        $file[\'error\'] = \'Image files must be smaller than \'.$limit.\'KB\';
    } elseif ( $type != $imagetype ) { // check if image type is allowed
        $file[\'error\'] = \'Image must be \' . $imagetype . \'.\';
    } elseif ( count( $attachmentsbyuser ) >= $imagelimit ) { // check if the user has exceeded the image limit
        $file[\'error\'] = \'Image limit of \' . $imagelimit . \' is exceeded for this user.\';
    }
    return $file;
}
UPDATE
这是经过改进的代码(尚未测试),感谢@nikhil sheth:
add_filter(\'wp_handle_upload_prefilter\', \'f711_image_size_prevent\');
function f711_image_size_prevent($file) {
    // get imagetype of upload
    $type = $file[\'type\'];
    $is_image = strpos($type, \'image\');
    // set allowed imagetype
    $imagetype = \'image/jpeg\';
    if ( $type == $imagetype ) {
        // get filesize of upload
        $size = $file[\'size\'];
        $size = $size / 1024; // Calculate down to KB
        // set sizelimit
        $limit = 700; // Your Filesize in KB
        // set imagelimit
        $imagelimit = 7;
        // query how many images the current user already uploaded
        global $current_user;
        $args = array(
            \'orderby\'         => \'post_date\',
            \'order\'           => \'DESC\',
            \'numberposts\'     => -1,
            \'post_type\'       => \'attachment\',
            \'author\'          => $current_user->ID,
        );
        $attachmentsbyuser = get_posts( $args );
        if ( ( $size > $limit ) && ($is_image !== false) ) { // check if the image is small enough
            $file[\'error\'] = \'Image files must be smaller than \'.$limit.\'KB\';
        } elseif ( count( $attachmentsbyuser ) >= $imagelimit ) { // check if the user has exceeded the image limit
            $file[\'error\'] = \'Image limit of \' . $imagelimit . \' is exceeded for this user.\';
        }
        return $file;
    } else { return $file; }
}