J'ai écrit cette fonction dans mon functions.php
function header_resized_img ($path, $width, $height) {
$image = wp_get_image_editor($path);
if (!is_wp_error($image)) {
$image->resize(9999, $height, false);
$orig_size = $image->get_size();
$image->crop($orig_size['width']/2-$width/2, $orig_size['height']/2-$height/2, $width, $height);
$image->stream( $mime_type = 'image/jpeg');
}
}
Pour que cela fonctionne, j'ai créé un fichier nommé page-image.php, puis une page avec permalink http://www.example.com/image/ . Dans page-image.php j'ai mis (juste un test)
header_resized_img (get_header_image(), 414, 700);
qui, en réalité, affiche l’image redimensionnée/recadrée lorsque je la visite. Maintenant, je veux le rendre plus flexible et transmettre les paramètres via une URL. J'ai essayé les chaînes de requête en utilisant $_GET
, puis j'ai trouvé get_query_arg
, mais aucun de ceux-ci ne semble faire l'affaire. Comment pourrais-je faire ça? Je vous remercie.
Cela devrait réellement fonctionner pour vous:
function header_resized_img () {
$image = wp_get_image_editor($_GET['path']);
$height = $_GET['height'];
$width = $_GET['width'];
if (!is_wp_error($image)) {
$image->resize(9999, $height, false);
$orig_size = $image->get_size();
$image->crop($orig_size['width']/2-$width/2, $orig_size['height']/2-$height/2, $width, $height);
$image->stream( $mime_type = 'image/jpeg');
}
}
et incluez votre fonction quelque part dans le modèle:
header_resized_img();
Ensuite, essayez d'accéder à cette URL:
http://example.com/image/?width=500&height=400&path=some-url
Pour générer votre image.