J'ai des problèmes pour supprimer la largeur et la hauteur de mes images jointes lors de l'utilisation de wp_get_attachment_image. Voici ce que j'utilise pour afficher l'image
<?php echo $image = wp_get_attachment_image( $entry['slide_image_id'], true, 'full'); ?>
A quoi ressemble le code source
<img width="150" height="108" src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
J'aimerais qu'il s'affiche comme ceci
<img src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
L'image est extraite d'un champ de fichier répétable avec une entrée avec un id de slide_image_id. J'ai regardé autour et j'ai remarqué d'utiliser wp_get_attachment_image_url mais quand je l'utilise avec mon code ci-dessus, l'image ne s'affiche pas. Y a-t-il quelque chose que je fais mal?
<?php echo $image = wp_get_attachment_image_url( $entry['slide_image_id'], true, 'full'); ?>
Note latérale: $ entry ['slide_image_id'] est ce qui est utilisé pour appeler mon champ de fichier répétable.
custom-field
attachments
images
user3756781
la source
la source
wp_get_attachment_image_url()
renvoie une URL - pas un élément d'image.add_filter('wp_get_attachment_image_attributes' ...
sauf que seules la hauteur et la largeur sont codées en dur.Réponses:
Vos arguments pour les deux
wp_get_attachment_image_url()
etwp_get_attachment_image()
dans le mauvais ordre - consultez la documentation liée pour plus de détails. En outre,wp_get_attachment_image_url()
renvoie une URL - pas un élément d'image réel.Malheureusement, la
wp_get_attachment_image()
fonction est actuellement (à partir de WordPress 4.4.1) codée en dur pour générer les attributswidth
etheight
<img>
(voir ticket # 14110 ), vous devrez donc créer vous-même le balisage d'image. Cela peut être fait en prenant des indices dewp_get_attachment_image()
la source de :la source
<img>
bits de génération d'attributs dewp_get_attachment_image()
- bien que j'aie omis les partiessrcset
etsizes
utilisées pour les images réactives. Si ceux-ci sont nécessaires, la création d'une fonctionget_sizeless_attachment_image()
serait souhaitable.solution de contournement
J'ai fait quelques recherches / tests de base et trouvé une solution de contournement à travers le
wp_constrain_dimensions
filtre:Cela semble nous permettre de supprimer les attributs de hauteur et de largeur de l'image html générée
wp_get_attachment_image()
, sans sortir les canons reg-ex. Nous pourrions également utiliser lewp_get_attachment_image_src
filtre d'une manière similaire pour supprimer la largeur / hauteur mais garder l' url .Remarques
Cette solution de contournement supprime les
srcset
etsizes
attributs. Mais il est également possible de définir les attributs srcset et tailles via le quatrième$attr
argument d'entrée.Comme mentionné par @bosco, vous avez changé les arguments d'entrée d' icône et de taille dans:
Utilisez-le à la place:
la source
J'ai simplement utilisé CSS pour celui-ci. Cela ne fonctionne pas dans tous les scénarios, mais assez souvent. Prenons une image 300px x 300px:
Cela limite les dimensions de l'image sans perdre son rapport largeur / hauteur. Sinon, vous pouvez également utiliser REGEX:
Ce sont des alternatives. Bonne chance.
la source