Utilisation du champ "Fichier" de ACF avec Timber

timber.png

Hack pour obtenir le lien téléchargeable de votre fichier directement via Twig

Si vous utilisez le plugin Advanced Custom Field (ACF) dans Wordpress, combiné avec Timber, il se peux que vous vous retrouviez confrontés à cette problématique : Vous devez intégrer une page comportant un bouton, ou un lien, permettant de télécharger un fichier (PDF, Image, Txt, etc).

Le hic, c'est que Timber intègre parfaitement tous les champs générés avec ACF au contexte de votre article dans l'objet "post", mais il semble qu'il ai plus de mal avec les champs de type "Fichier".

Timber aura tendance a générer une URL foireuse de type "http://mon-site.fr/slug-page/ID_FICHIER" et le fichier ne sera bien évidemment pas accessible via cet URL.

En suivant une discussion dans les issues Github de Timber, un membre donne une solution au problème, qui consiste a convertir notre fichier en objet "TimberImage" pour accéder facilement a son URL.

                                
                                    {% set file = TimberImage(post.download_kit) %}
<a href="{{ file.src }}" target="_blank">Download Stuff Bro</a>
                                
                            

Ouais, c'est pas propre tout ça... Mais ça fonctionne ! Donc on s'en contente faute de mieux :)

Enfin, si vous souhaitez accéder au lien du fichier avant d'être dans le template Twig (dans votre fichier PHP) la solution est similaire.

Voir également

blog comments powered by Disqus

Licence Creative Commons Cet article est mis à disposition sous Licence Creative Commons Attribution - Partage dans les mêmes Conditions 4.0 International.