web-dev-qa-db-fra.com

La vignette recadrée reste affichée comme une image complète

Étapes à suivre pour reproduire ...

1) Ajouter à functions.php:

add_image_size( 'half-size', 200, 200, false );

2) Ajouter au fichier de modèle (boucle interne):

<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >

 <?php the_post_thumbnail ('half-size', array('class' => 'profile_image')); ?> </a>

3) Accédez à la médiathèque et ajoutez une image à la galerie de publications. Ensuite, recadrez l'image, cliquez sur le bouton radio "miniature" et cliquez sur Enregistrer sous l'image.

4) Cliquez sur Définir comme image sélectionnée, puis sur "Enregistrer toutes les modifications" en bas de la fenêtre de la galerie. Puis mettez à jour le message (cela peut ne pas être nécessaire).

Ne pas insérer dans la galerie. Cliquez sur le message réel et voyez s'il montre la partie de l'image que vous avez recadrée ou l'image entière.

Qu'est-ce que je fais mal? Ou bien le recadrage inexplicablement ne fonctionne-t-il pas avec Image sélectionnée?

Apparemment, il n'y a pas de ticket pour ce problème .

2
Adam

Je confondais add_image_size avec set_post_thumbnail_size. Le problème avec ce dernier est que vous ne pouvez définir qu'une seule taille de "vignette".

Je souhaitais pouvoir conserver l’image originale intacte et appliquer un recadrage personnalisé à la version miniature de l’image. J'utilise plusieurs tailles d'image sur le site comme "vignette".

La solution ici est donc de remplacer "demi-taille" par "miniature" partout où je veux afficher l'image recadrée. Il est judicieux de définir "vignette" comme étant la plus grande image que vous utiliserez. Parce que vous devrez utiliser des classes CSS pour le redimensionner à la taille de l’image.

Cela pourrait présenter des inconvénients, même si, par exemple, lorsque vous saisissez une "galerie", il est probable que la taille de la vignette soit plus grande que celle que j'avais définie auparavant.

1
Adam

La raison pour laquelle half-size ne recadre pas est due au fait que vous avez spécifié pour ne pas recadrer de manière dure :

add_image_size( 'half-size', 200, 200, false );

Ce dernier paramètre, défini comme false, est le paramètre hard-crop :

  • Réglez sur true pour rognage dur
  • Définissez sur false pour box-resize

Si vous avez besoin de l'image half-size à rogner, modifiez ce paramètre:

add_image_size( 'half-size', 200, 200, true );
1
Chip Bennett