ACF - afficher plusieurs images de répéteur
P粉885562567
P粉885562567 2024-03-26 22:15:20
0
1
443

Mon objectif ultime est de créer une galerie d'images qui renvoie vers un site Web externe en un clic. Cela doit être fait via des champs personnalisés avancés, j'ai donc créé un répéteur avec l'image et le lien sur la même ligne :

link1 | cover_image1 
link2 | cover_image2

Maintenant, j'insère ce code dans un éditeur de texte au sein de la page Web. J'ai également importé quelques shortcodes d'ici qui me permettent d'utiliser %ROW% comme itérateur.

"attachments" est le redirecteur parent, "link" et "cover_image" sont les redirecteurs enfants.

[acf_repeater field="attachments"]

external url = [acf field ='attachments_%ROW%_link']
image url = [acf field ='attachments_%ROW%_cover_image'] 

<a href =[acf field ='attachments_%ROW%_link'] >
<img src = [acf field ='attachments_%ROW%_cover_image'] width="300" height="214" />
</a>

[/acf_repeater]

La page web est présentée comme suit :

L'image corrompue contient le code suivant :

<img src="[acf" field="attachments_0_cover_image" &#093;="" width="300" height="214">

Je pense que le [champ acf ='attachments_%ROW%_cover_image'] dans <img> n'est pas entièrement analysé en fonction de l'URL, car l'URL externe = et l'url de l'image = affichent l'URL correcte.

Wordpress convertit également mon code en ceci après l'enregistrement, alors c'est peut-être une erreur de syntaxe ?

[acf_repeater field="attachments"]

external url = [acf field = attachments_%ROW%_link]
image url = [acf field = attachments_%ROW%_cover_image]

<a href="[acf">
<img src="[acf" width="300" height="214" />
</a>

[/acf_repeater]

Je ne sais pas comment convertir correctement [acf field ='attachments_%ROW%_cover_image'] en une URL dans <img>, je pourrais avoir besoin d'aide sur la syntaxe correcte. Merci pour votre aide!

html pour chaque attribut Arien :

<div class="fl-module fl-module-rich-text fl-node-5d4926759d7aa" 

data-node="5d4926759d7aa">
    <div class="fl-module-content fl-node-content">
        <div class="fl-rich-text">
    <p>Agenda: <a href="https://hips.hearstapps.com/hmg-prod.s3.amazonaws.com/images/cute-cat-photos-1593441022.jpg?crop=0.669xw:1.00xh;0.166xw,0&amp;resize=640:*">https://hips.hearstapps.com/hmg-prod.s3.amazonaws.com/images/cute-cat-photos-1593441022.jpg?crop=0.669xw:1.00xh;0.166xw,0&amp;resize=640:*</a></p>
<p>Video Links: <a href="https://hips.hearstapps.com/hmg-prod.s3.amazonaws.com/images/cute-cat-photos-1593441022.jpg?crop=0.669xw:1.00xh;0.166xw,0&amp;resize=640:*"></a></p>
<p>Thumbnails: <a href=""></a></p>
<p></p>
<p>external url = https://www.youtube.com/watch?v=uHKfrz65KSU<br>
image url = http://wordpress.local/wp-content/uploads/Thumbnail_1.png</p>
<p><a href="[acf" field="attachments_0_link" &#093;=""><br>
<img src="[acf" field="attachments_0_cover_image" &#093;="" width="300" height="214"><br>
</a></p>
<p><br></p>
<p>external url = https://www.youtube.com/watch?v=X2lIovmNsUY<br>
image url = http://wordpress.local/wp-content/uploads/Thumbnail_2-1.png</p>
<p><a href="[acf" field="attachments_1_link" &#093;=""><br>
<img src="[acf" field="attachments_1_cover_image" &#093;="" width="300" height="214"><br>
</a></p>
<p><br></p>
<p>external url = https://www.youtube.com/watch?v=hDJkFLnmFHU<br>
image url = http://wordpress.local/wp-content/uploads/Thumbnail_3-1.png</p>
<p><a href="[acf" field="attachments_2_link" &#093;=""><br>
<img src="[acf" field="attachments_2_cover_image" &#093;="" width="300" height="214"><br>
</a></p>
<p><br></p>
</div>
    </div>
</div>

P粉885562567
P粉885562567

répondre à tous(1)
P粉842215006

Ce n'est pas un gars de WordPress, mais il semble que WordPress empêche le développement/l'exécution des shortcodes à l'aide de paramètres dans les attributs HTML, si vous pouvez y mettre le code php, cela pourrait peut-être fonctionner comme une solution de contournement :





En fait, j'ai trouvé un commentaire à ce sujet :

à ici

Donc, cela pourrait aussi fonctionner :



Ou sans guillemets shortcode :



La dernière option à laquelle je peux penser est de créer un shortcode sans paramètre comme celui-ci :

function acflink_shortcode() {
    return do_shortcode("[acf field ='attachments_%ROW%_link']");
}
add_shortcode('acflink', 'acflink_shortcode');

function acfimage_shortcode() {
    return do_shortcode("[acf field ='attachments_%ROW%_cover_image']");
}
add_shortcode('acfimage', 'acfimage_shortcode');

Puis utilisez dans l'éditeur, par exemple :



Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!