web-dev-qa-db-fra.com

add_image_size est en train de changer d'échelle, même si le cadrage est fini

J'essaye de recadrer une image 1000 x 648 en 400 x 400. J'utilise ce code dans functions.php

add_theme_support( 'post-thumbnails' );
add_image_size('shop-size', 400, 400, array(center,center) );
add_image_size('shop-size2', 401, 400, true );

ensuite, je vais dans le plugin regenerate et le lance. Pendant que je l'exécute, j'ouvre les téléchargements de contenu wp pour vérifier ce qui se passe.

Je regarde comme il crée une image 400x259 qui est mise à l'échelle. Le plugin regenerate dit même qu'il va effectuer un recadrage de 400x400 pour s'adapter à la taille de la boutique, puis ne le fait pas.

J'ai vérifié si Gd est chargé avec cela et il retourne 'Gd chargé'

<?php if (extension_loaded('Gd')) 
     { 
         echo "Gd loaded"; 
     } else { 
         echo "not loaded"; 
} ?>

J'ai aussi essayé de l'accrocher à after_theme_setup comme ceci:

function add_custom_sizes() {
    add_image_size( 'map-size', 199, 199, array('center','center') );
    add_image_size('shop-size', 599, 599, array('center','center') );
    add_image_size('discover-size', 749, 620, array('center','center'));
    add_image_size( 'map-size1', 198, 199, true );
    add_image_size('shop-size1', 598, 599, true );
    add_image_size('discover-size1', 748, 620, true);
}

add_action('after_setup_theme','add_custom_sizes'); 

cependant, comme je le régénère, il fait toujours 198x165 au lieu de 198x199 (à partir de 768 x 641)

Le parent est appelé "montée" par thèmes prospère. Je les ai contactés mais ils ont dit qu'ils n'avaient pas de support pour les questions de développement.

Le parent utilise seulement add_image_size une fois, j'ai essayé de le supprimer mais j'avais toujours la mise à l'échelle au lieu du problème de recadrage.

J'ai inclus les fichiers de montée ci-dessous. J'ai un pressentiment qu'ils font une sorte de mise à l'échelle personnalisée? Et je vais devoir passer outre cela, comment?

fichier d'optimisation d'image Thrive - https://Pastebin.com/1QEa6YJv Fonctions Thrive - https://Pastebin.com/pAqBt285

Quelqu'un peut-il m'aider à comprendre ce que je fais mal? Merci pour toute aide.

3

d'après votre question, vous souhaitez des images recadrées de taille fixe lorsque vous importez une image, pourquoi n'utilisez-vous pas wp_get_image_editor. Je l'ai utilisé dans mon projet où je voulais des images recadrées de taille fixe, donc j'ai fait ce code.

$path = $newPath['basedir'].'/newImgas/';
$cropfile = uniqid() . '.png';
$cropfilename = $path.$cropfile;
$cropImage = home_url(). '/wp-content/uploads/newImgas/'.$cropfile;
$c_image = wp_get_image_editor($newImage);
if ( ! is_wp_error($c_image) ) {
  $c_image->resize( 600, 600, TRUE);
  $c_image->save( $cropfilename );
}

Vous pouvez trouver exemple ici . S'il vous plaît répondez-moi si ce n'est pas ce que vous vouliez.

1
Vinit

Je pense que votre problème pourrait être, vous devez définir la priorité haute (essayez 101, ou même 999 si cela résout):

add_action('after_setup_theme', 'add_custom_sizes',  101 ); 
1
T.Todua

Le fait que Gd soit chargé ne signifie pas qu'il est réellement utilisé pour manipuler les images. Du code Pastebin que vous avez donné, je conclus que votre thème est fourni avec l’optimiseur d’images Kraken (sous forme de plug-in séparé ou avec le thème d’une autre manière).

Étant donné que add_image_size ne place que les données dans un tableau, il appartient à la fonction de traitement des images de les utiliser. Normalement, cela se fait par la fonction wp_save_image , qui permet d’utiliser n’importe quel éditeur d’image (dans la ligne où il est écrit: $img = wp_get_image_editor).

Donc, l'éditeur Kraken ignore probablement le paramètre de recadrage. Vous devrez trouver les paramètres du plugin et les modifier, si votre thème vous le permet. Kraken est un système payant, il peut donc y avoir des limites.

Vous pouvez également utiliser le filtre wp_image_editors pour modifier l'éditeur d'images en D, mais comme je ne sais pas comment le thème utilise Kraken, je ne suis pas sûr de l'effet que cela pourrait avoir.

1
cjbj