Bonjour, je suis en train de faire mon site sur Wordpress (je précise que je suis journaliste et donc nul en PHP mais j'essaye de me débrouiller comme je peux). Je bloque pour afficher des champs relatifs à un article dans la sidebar. J'ai du passer par un widget qui me permet de saisir du PHP car les shortcodes ne fonctionnent pas pour des champs liens apparemment. Or je n'arrive pas à afficher le texte du lien qu'on saisit dans le formulaire. Voici le code que j'utilise :


<ul><li>
<?php if ( get_field( 'lien_1' ) ) {
    echo '<a target="_blank" href="' . get_field( 'lien_1' ) . '" class="bouton-source">texte du lien</a>';
}; ?>
</li></ul>


Je pensais naïvement pouvoir écrire :

<ul><li>
<?php if ( get_field( 'lien_1' ) ) {
    echo '<a target="_blank" href="' . get_field( 'lien_1' ) . '" class="bouton-source"><?php echo $link['title']; ?></a>';
}; ?>
</li></ul>


Mais ça ne fonctionne pas... Quelqu'un pourrait-il m'aider ? Je sais faire un peu de CSS mais de PHP Smiley decu
Modifié par Datapolitics (30 Jan 2019 - 17:13)
Modérateur
Bonjour,

Impossible de répondre à cette question avec aussi peu de visibilité sur le code.

Amicalement,
Je travaille encore en local. En fait j'ai juste installé ACF et créer des champs pour chaque article. Pour afficher les valeurs j'utilise un widget HTML dans la sidebar et je liste mes champs avec les shortcodes :


<ul>
<li>[acf field="Champ_1"]</li>
<li>[acf field="Champ_2"]</li>
<li>[acf field="Champ_3"]</li>
</ul>


ça marche bien sauf pour les champs liens, je suis obligé d'écrire du PHP. Alors j'utilise un widget texte et je rentre les champs comme ça (j'ai trouvé le code sur Alsacréations) :

<ul><li>
<?php if ( get_field( 'lien_1' ) ) {
    echo '<a target="_blank" href="' . get_field( 'lien_1' ) . '" class="bouton-source">texte du lien</a>';
}; ?>
</li></ul>


Sauf que je peux pas récupérer dynamiquement le texte du lien. C'est dommage car c'est le seul truc qui me bloque
Modifié par Datapolitics (30 Jan 2019 - 18:02)
Dans la back-office dans le champ ACF "lien" : on entre une URL et le texte du lien à afficher.
Modifié par Datapolitics (30 Jan 2019 - 18:05)
Modérateur
Bonjour,

Quand tu dis que tu testes en local, tu as bien un serveur web installé en local avec php ?

A priori oui, sinon, wordPress ne marcherait pas.

Si tu écris simplement le code ci-dessous, est-ce que ça t'affiche "toto" ?


<ul><li>
<?php echo "toto"; ?>
</li></ul>


Amicalement,
Héhé oui "toto" s'affiche bien. Mon champ lien s'affiche, c'est juste que je suis obligé de rentrer le texte en dur donc ça rend le truc inutile
Modifié par Datapolitics (30 Jan 2019 - 18:16)
Modérateur
Bonjour,

Si tu n'utilises pas php du tout, et en supposant que tu ne veuilles afficher que le texte du lien, quel est le short code pour l'afficher ?

Amicalement,
le shortcode pour afficher un champ ACF :

[acf field="Champ_1"]


Mais ça ne marche pas pour les champs liens comme je te disais
Modifié par Datapolitics (30 Jan 2019 - 18:18)
Modérateur
Bonjour,

Qu'est-ce qui t'empêche de créer un champ ACF contenant seulement le texte du lien ?

Amicalement,
Modifié par parsimonhi (30 Jan 2019 - 18:21)
Modérateur
Bonjour,

Pour l'instant, on oublie qu'il faut qu'il soit cliquable. On oublie php. On avance pas à pas.

Quel serait le code ACF pour afficher seulement (j'insiste sur le seulement) le texte du lien non cliquable ?

Amicalement,
Modérateur
Bonjour,

Bon, je shoote un code au hasard :

<ul><li>
  <a target="_blank" href="<?php echo get_field( 'lien_1' );?>" class="bouton-source">[acf field="Champ_1"]</a>
</li></ul>


Amicalement,
Meilleure solution
Hey c'est pas mal, avec ton code je m'en sors si je crée deux champs ACF :

1 champ URL : lien_1
1 champ texte pour le nom du lien : Champ_1

J'ai envie d'opter pour ta solution même si on exploite pas le titre qu'on donne dans le champ lien
J'ai configuré mes champs liens, testés dans tous les sens, ça marche impeccable avec ta solution, merci mille fois c'est top !!!
Modérateur
Bonjour,
Datapolitics a écrit :
J'ai envie d'opter pour ta solution même si on exploite pas le titre qu'on donne dans le champ lien

Ça doit être possible (je connais mal ce truc).

C'est pour ça que je te demandais si tu connaissais le shortcode pour afficher le titre du lien.

Sinon, il est possible que le code ci-dessous fonctionne mais c'est au jugé, parce que je n'ai pas assez de détails sur la manière dont tu déclares tes liens en back office. Quand tu déclares un lien avec ton back office, pour que le code ci-dessous marche, il faut cocher la case "link Array" ou sa traduction en français si ton wordpress est en français.


<?php
  $link = get_field( 'un_lien' );
?>
<ul><li>
  <a target="_blank" href="<?php echo $link['url'];?>" class="bouton-source"><?php echo $link['title'];?></a>
</li></ul>


Amicalement,
Merci j'ai testé mais cela ne fonctionne pas, rien n'apparait. Ne t'embête plus ta solution précédente est parfaite et finalement ce sera la même chose pour moi : on rentre une URL dans un champ et le texte qui doit apparaitre dans un autre donc c'est 100% viable au quotidien. J'ai tout paramétré proprement dans le formulaire de création d 'article c'est top.

Encore merci pour ton temps et ton aide précieuse !