Hallo strub,
vielen Dank für deine Hilfe.
Dein Code hat super funktioniert. :D
Habe das noch ein wenig erweitert.
Hier das Endresultat:
Code
// Erstellt eine neue Bildgröße in WordPress.
add_image_size( 'half-sized', 9999, 0);
add_action( 'wp_handle_upload', function($fileData) {
// Legt ein Array mit einer Liste akzeptierter Datei-Formate fest.
$allowed_file_types = array('image/jpg','image/jpeg','image/gif','image/png');
// Überprüft ob eine Datei existiert und die hochgeladene Datei das richtige Format hat.
if (isset($fileData['file']) and in_array($fileData['type'], $allowed_file_types)) {
// Überprüft ob der Dateiname "retimg" enthält.
if (strpos($fileData['file'], 'retimg') !== false) {
// Wenn alles richtig, wird der Filter genutzt.
add_filter( 'image_resize_dimensions', 'half_image_resize_dimensions', 10, 6 );
}
}
return $fileData;
});
// Erzeugt ein 50% kleineres Bild vom Original.
function half_image_resize_dimensions( $payload, $orig_w, $orig_h, $dest_w, $dest_h, $crop ) {
// Überprüft ob die Bildgröße "half-sized" vorhanden ist.
if($dest_w === 9999) {
// Wenn ja, wird folgender Code ausgeführt.
$width = $orig_w/2;
$height = $orig_h/2;
return array( 0, 0, 0, 0, $width, $height, $orig_w, $orig_h );
} else { // Wenn nein, wird der Filter nicht genutzt.
return $payload;
}
}
Alles anzeigen
Der Code ist getestet und funktioniert.