web-dev-qa-db-fra.com

the_post_thumbnail rognage difficile ne fonctionne pas, peu importe quoi

Peu importe ce que je fais - je ne parviens pas à utiliser le mode de recadrage difficile dans the_post_thumbnail.

Voici ce que j'ai

add_image_size( 'Blog', 300, 300, true ); 
the_post_thumbnail('Blog');

J'ai aussi essayé:

set_post_thumbnail_size( 300, 300, true );
the_post_thumbnail();

J'ai essayé de télécharger de nouvelles images et d'utiliser le plugin "Regenerate Thumbnails", mais toujours pas de chance. Il ignore complètement le "vrai" et agit comme si c'était "faux". Par exemple, au lieu que l’image soit 300x300, ce sera 300x238 ou quelque chose du genre.

Quelqu'un d'autre a-t-il vécu cela? Ma bibliothèque Gd est activée ..

Merci pour toute contribution que n'importe qui peut offrir =)

6
Tom

J'ai finalement finalement résolu ce problème.

Il semble que le rognage difficile fonctionne si vous définissez la taille de l'image dans une fonction liée au crochet "after_setup_theme".

Ainsi, le ci-dessous fonctionnerait:

function add_custom_sizes() {
    add_image_size( 'portfolio-thumb', 243, 163, true );
    add_image_size( 'portfolio-image', 1074, 725, true );
    add_image_size( 'available-homes', 500, 279, true );
    add_image_size( 'idea-thumb', 146, 141, true );
}
add_action('after_setup_theme','add_custom_sizes');

Cela vous permettra d'obtenir des images réellement tronquées en utilisant les tailles spécifiées à l'aide de the_post_thumbnail ().

J'espère que cela aide aussi quelqu'un d'autre.

3
Tom

La plupart du temps, cela ne fonctionne pas parce que vous n'avez pas régénéré les vignettes pour toutes vos images.

Si vous avez modifié les dimensions de vos images, vous devrez régénérer vos vignettes à l'aide de ce plugin: http://wordpress.org/extend/plugins/regenerate-thumbnails/

7
bryceadams

Je dirais que les bibliothèques Gd ne sont peut-être pas installées sur votre serveur. Sans cela, vous n'obtiendrez que les téléchargements de fichiers et aucun recadrage d'image.

Tout d’abord, effectuez une vérification de cohérence en appelant phpinfo() pour voir si Gd est installé.

Installation Gd sous Linux

Si vous avez un accès Shell, tapez simplement cette commande:

Sudo apt-get install php5-Gd

Vous devrez redémarrer le serveur après avoir installé Gd.

Voici la commande pour redémarrer Apache:

/etc/init.d/Apache2 restart

Hébergement partagé

Si vous êtes sur une boîte partagée, vous devez contacter votre hôte et le faire installer sur votre serveur.

Une dernière chose

Votre thème est-il compatible avec les vignettes?

add_theme_support('post-thumbnails');
3
Brian Fegter

Au lieu de définir la taille de la miniature de publication comme blog, pourquoi ne pas définir explicitement la miniature de publication dans le modèle à l'endroit où vous souhaitez qu'elle s'affiche ...

the_post_thumbnail($post->ID, array(300,300, true));
2
Adam

Je viens d'avoir ce même problème et la solution pour moi était de régénérer les vignettes comme suggéré par les bryceadams (je n'ai malheureusement pas assez de points pour voter pour sa réponse).

Mise en garde: Les images doivent être stockées localement, pas à distance. Vraisemblablement, aucune vignette n'est générée pour les images distantes.

1
adriatiq

Dans mon cas, ce problème était dû aux autorisations de création de fichiers sur les images. J'avais copié les images d'un serveur à un autre, en oubliant de changer de propriétaire. Lorsque de nouvelles tailles d’image ont été définies et que je les ai régénérées, les anciennes images n’ont pas été écrasées comme elles auraient dû l’être.

Pour résoudre ce problème, je me suis connecté à mon serveur avec SSH, j'ai navigué dans le dossier the wp-content/uploads et réinitialisé la propriété de toutes les images présentes. par exemple.

chown -R {web user}:{group} .

J'espère que ça aide quelqu'un.

1
Mere Development

J'ai eu le même problème et installé un plugin qui permet de régénérer une/plusieurs/toutes vos images. Voici le plugin: [http://wordpress.org/plugins/regenerate-thumbnails/]

Je n'ai pas trouvé le moyen de le faire à partir de l'interface utilisateur WP admin sauf si vous supprimez et transférez à nouveau l'image.

Une autre façon de le faire, si vous ne voulez pas utiliser de plugin, serait de le faire avec les fonctions PHP

function wp_regenerate() {
include( ABSPATH . 'wp-admin/includes/image.php' );
wp_generate_attachment_metadata( $thumbnail_id, $absolute_path_to_image ); }

add_action('after_setup_theme', 'wp_regenerate');

où $ thumbnail_id et $ absolute_path_to_image doivent être définis avec les valeurs souhaitées.

Merci à @briceadams et @adriaticiq. Je ne peux pas encore vous voter mais je le ferai dès que je serai autorisé.

0
idejuan

Vous n'aurez jamais d'image tronquée autrement que par les tailles par défaut. Vous n'obtiendrez pas cette réponse sur les forums WP. Sinon, ils vous montreront une carotte pendant des semaines jusqu'à ce que vous soyez inquiet et bloqué ou qu'ils la réparent en silence.

Les images rognées ne sont que pour

  • La vignette
  • Toutes les autres tailles SAUF vignette ET VOS TAILLES PERSONNALISÉES

Les choses qui ne sont pas possibles ne sont JAMAIS affichées au début ni essayées autant que possible d'être dissimulées dans les forums (notre projet .org gratuit est leur produit .com), même si les options ci-dessus vous ont obligé à tirer les cheveux pendant des mois.

La deuxième option devrait se lire "TOUTES LES AUTRES TAILLES SAUF LE VÔTRE"

Je développe un plugin pour cela, et une magie supplémentaire. Je vais bientôt le faire, mais j'aurai besoin d'aide pour le publier dans la bibliothèque de plugins depuis que j'ai été banni! hehe (pour aider les autres avec des bugs non signalés (ou ignorés))

0
sergio