web-dev-qa-db-fra.com

the_post_thumbnail redimensionnement pas difficile

Dernièrement, je voulais mettre à jour mon blog avec des images/miniatures de publication. J'utilise un thème personnalisé construit sur le thème Racines (ce n'est pas un problème de thème Racines, je crois). L'image que j'ai téléchargée est au format 1024x768 et doit être recadrée au format Letterbox 1024x512.

C'est le code que j'utilise dans le fichier de thème:

<?php
    if ( has_post_thumbnail() ) {
    the_post_thumbnail(array(1024, 512), array('class' => 'img-responsive')); // add post thumbnail
        }
    ?>

Maintenant, le problème est que cela fonctionne parfaitement sur ma boîte XAMPP locale. Mais sur le serveur Web, les images ne sont pas recadrées et ne couvrent pas toute la largeur de la zone de contenu principale, contrairement à l'installation locale. En vérifiant le code avec Firebug, l’image mesure 682 pixels de large et 512 pixels de haut (1024 x 512 pixels sur la case XAMPP). Donc, ce qui se passe, c'est que l'image est redimensionnée et non rognée.

J'ai re-téléchargé le thème et j'ai désactivé tous les plugins. Et bien sûr, j'ai cherché des sujets connexes, essayé d'autres exemples de code, vérifié que Gd est activé - ce sont les pouces régénérés. Rien de tout cela n'a résolu le problème.

Toutes les idées grandement appréciées.

2
gfaw

Pour l'entrée du Codex pour the_post_thumbnail() , passer un tableau n'a pas fonctionné depuis WordPress 3.0:

VEUILLEZ NOTER: le recadrage ne fonctionne pas dans WP 3.0+. Tout ce qui est nécessaire pour WP 3.0+ est l'appel de la vignette à publier. Passez ensuite au support dans le tableau de bord et réglez votre vignette sur le format que vous souhaitez utiliser.

La bonne implémentation consiste à créer une taille d’image personnalisée avec vos valeurs de tableau, via add_image_size() dans la fonction de configuration du thème (ou tout autre rappel relié à after_setup_theme):

add_image_size( 'custom-size', 1024, 512, true );

... puis appelez cette taille directement:

the_post_thumbnail( 'custom-size' );
3
Chip Bennett

Voici ce qui a résolu le problème (peut-être pas la solution la plus élégante, mais travailler pour le moment:

dans custom.php (functions.php du thème des racines), j'ai ajouté ceci:

 if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
    set_post_thumbnail_size(1024, 512, true);

}

dans le fichier de thème où l'image sélectionnée doit apparaître, j'ai ajouté ceci:

    if ( has_post_thumbnail() ) {
the_post_thumbnail(array(1024, 512, true), array('class' => 'img-responsive')); // add post thumbnail
    }
?>

Ce que je ne comprends pas, c'est que ni l'un ni l'autre ne fonctionne sans l'autre. Quoi qu'il en soit, cela résout le problème pour l'instant

0
gfaw

Normalement, si vous voulez recadrer une vignette, vous devez le dire en utilisant "true" comme troisième paramètre.

array(1024, 512, true)

C'est du moins ce que vous ferez si vous définissez une taille d'image miniature dans votre functions.php. Donc, je suppose que cela devrait également fonctionner dans le tableau the_post_thumbnail :) Eh bien, et si ce n’est pas le cas, vous pouvez toujours définir une taille de miniature dans votre fichier functions.php et utiliser celle-ci ...

Voici une référence: http://codex.wordpress.org/Function_Reference/set_post_thumbnail_size

0
Fyn