J'ai créé un type de message personnalisé avec un téléchargement de galerie d'images. Maintenant, j'essaie d'afficher la galerie au début. C'est ce que j'ai jusqu'à présent qui fonctionne pour afficher 1 image, mais si plusieurs images sont téléchargées, toutes les URL restent bloquées dans la balise src
. Donc, je suppose que je devrais parcourir ce tableau et cracher chacun séparément? Serait-ce la voie à suivre et si oui, comment puis-je accomplir cela?
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php
echo '<img src="'.get_post_meta($post->ID, 'gallery-upload', true).'">';
?>
<?php endwhile; else: ?>
<p><?php _e('No posts were found. Sorry!'); ?></p>
<?php endif; ?>
MODIFIER:
C'est ce que j'ai fini avec qui fonctionne ...
<?php
foreach(get_post_meta($post->ID, 'gallery-upload') as $meta) {
foreach(explode(',', $meta) as $src) {
echo '<img src="'.htmlentities($src).'">';
}
}
?>
Vous devez réorganiser la manière dont vous stockez les images: faites en sorte que les fichiers téléchargés soient les enfants de cette publication, ne les mettez pas dans un champ méta de publication. Ensuite, obtenez toutes les images avec get_children()
. Regardez le gestionnaire intégré pour le shortcode [gallery]
pour quelques exemples.
Je devrais aller comme ça:
$args = array(
'post_mime_type' => 'image',
'numberposts' => -1,
'post_parent' => get_the_ID(),
'post_type' => 'attachment'
);
$attached_images = get_children( $args );
foreach ( $attached_images as $image )
{
// print image
}
Et même si vous souhaitez conserver les champs post-méta, ne stockez pas les URL, utilisez plutôt les ID de pièce jointe. Les URL peuvent changer à tout moment (pensez à une migration de dev vers un site de production).
Donc, je suppose que je devrais parcourir ce tableau et cracher chacun séparément? Serait-ce la voie à suivre et si oui, comment puis-je accomplir cela?
Oui. get_post_meta(...)
devrait renvoyer un tableau sans ce dernier paramètre ou avec la valeur false. Vous auriez alors ...
<?php
$meta = get_post_meta($post->ID, 'gallery-upload');
foreach ($meta as $m) {
echo '<img src="'.$m.'">';
}
?>