Maison > Questions et réponses > le corps du texte
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" ]="" 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&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&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&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" ]=""><br> <img src="[acf" field="attachments_0_cover_image" ]="" 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" ]=""><br> <img src="[acf" field="attachments_1_cover_image" ]="" 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" ]=""><br> <img src="[acf" field="attachments_2_cover_image" ]="" width="300" height="214"><br> </a></p> <p><br></p> </div> </div> </div>
P粉8422150062024-03-27 20:00:18
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 :