X

Obtenir la valeur d'un champ personnalisé avec un shortcode

Extraits par IsItWP

Voulez-vous obtenir des valeurs de champs personnalisés à l'aide d'un shortcode ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour obtenir la valeur d'un champ personnalisé avec un shortcode dans WordPress.

Instructions :

Il vous suffit d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :

add_shortcode('field', 'shortcode_field');

function shortcode_field($atts){
     extract(shortcode_atts(array(
                  'post_id' => NULL,
               ), $atts));
  if(!isset($atts[0])) return;
       $field = esc_attr($atts[0]);
       global $post;
       $post_id = (NULL === $post_id) ? $post->ID : $post_id;
       return get_post_meta($post_id, $field, true);
}
 [field "my_key"]
 [field "my_key" post_id=1]

Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière d'ajouter correctement des extraits de code dans WordPress, afin de ne pas endommager accidentellement votre site.

Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : 10 meilleurs plugins de témoignages WordPress pour ajouter une preuve sociale et comment créer un formulaire de contact dans WordPress.

Commentaires   Laisser une réponse

  1. Le mien affiche juste le mot Array ?

  2. Bonjour, excellent extrait 🙂

    Est-il possible d'afficher un message d'erreur lorsque le fichier personnalisé n'existe pas ?

    Il est difficile de repérer les erreurs lorsqu'il n'y a aucune sortie.

    Cordialement
    Rudi

  3. Une idée sur la façon de sortir un champ personnalisé sous forme de lien ?
    J'ai essayé ceci : test mais ça ne fonctionne pas. Merci.

  4. Bonjour,

    Cela fonctionne bien pour les champs personnalisés des plugins, merci ! Mais comment afficher les champs standard comme « Titre » ou « Extrait » ?

  5. merci beaucoup. beau travail

    1. Salut Kasra, de rien. N'oubliez pas de nous suivre sur Facebook et Twitter. 🙂

  6. Comment globaliser la valeur d'un champ personnalisé car elle n'est pas prise en compte dans la méta-description par Rank Math.

  7. Cet article m'a beaucoup aidé. Un grand merci du Vietnam.

  8. Merci, ça a marché comme par magie 🙂

  9. merci beaucoup. ça fonctionne parfaitement

    1. Content que ça ait aidé, Nail 🙂

  10. Mamma mia – ça fonctionne parfaitement ! Merci beaucoup ! 🙂

  11. Merci pour cet extrait incroyable, ça fonctionne à merveille ?

    1. Content que ça ait fonctionné pour vous

  12. Salut
    Je n'arrive pas à le faire fonctionner. Dois-je modifier le shortcode et remplacer les mots : my_key par le nom de mon champ personnalisé ?
    Et dois-je changer quelque chose dans le code que vous avez mis dans functions.php ou le coller tel quel ? Merci beaucoup

  13. Excellent extrait, merci. Il fonctionne très bien sur mes pages de produits woocommerce, mais pas sur le panier et la page de paiement. Des conseils pour résoudre ce problème seraient vraiment appréciés !

    1. Aucune idée ? 🙁

  14. Andreas Kyriakidis November 1, 2016 at 6:41 am

    Salut ! Merci pour le code.

    Est-il possible de personnaliser l'extrait afin d'avoir également un shortcode [field “my_key” page_id=1] ?

  15. Salut Marco, si je devais deviner, vous utilisez le mauvais nom de champ personnalisé. certains plugins utiliseront un trait de soulignement avant le nom du champ personnalisé, par exemple _description. ceci est fait pour masquer les champs côté administrateur.

    vous pouvez utiliser cet extrait dans votre thème pour afficher une liste de tous les champs personnalisés. Cela affichera une notification d'administrateur dans l'écran de modification de publication dans l'administration et listera tout. Vous pouvez simplement supprimer cet extrait lorsque vous avez le bon nom de champ personnalisé.

    http://wpsnipp.com/index.php/functions-php/show-absolutely-custom-fields-post/

    1. Non, « description » est le nom du champ, importé par le plugin « CultureObject »
      j'entre un nouveau « testfield » avec le texte « textfield for post » dans l'écran de l'éditeur de publication.
      La « description » n'apparaît pas, le texte « textfield for post » est visible.
      J'ai regardé dans la base de données et les deux champs apparaissent. À l'exception du texte/contenu, ils sont identiques.
      Pourquoi un champ personnalisé importé par CulturObject se comporte-t-il différemment d'un champ personnalisé créé manuellement.
      La différence est-elle que les champs que je remplis manuellement (et qui apparaissent) sont dans des publications régulières et que les champs personnalisés importés par CultureObject sont dans des publications personnalisées ? (qui n'apparaissent pas)

  16. Jarod Emerson Thornton August 5, 2015 at 11:56 am

    C'est génial. Merci beaucoup !

  17. Ne produit rien dans un bloc de texte d'élément de grille, dans une grille de publication (Visual Composer)

  18. Merci ! Je cherchais sur Google depuis 2 jours !!!

  19. Merci pour cet article, il m'a beaucoup aidé 🙂

  20. Merci pour cet article, il m'a beaucoup aidé 🙂

  21. 30 Extremely Useful Wordpress Code Snippets & Hacks | Web Design Habits October 14, 2011 at 6:33 am
  22. Cliff Paulick July 21, 2011 at 5:56 pm

    Lorsque vous essayez d'intégrer le contenu d'un champ personnalisé dans un autre shortcode, en fonction de la configuration de l'autre shortcode, pourriez-vous vous passer des guillemets doubles ?
    Par exemple :
    [my_field_name]
    au lieu de
    [field "my_field_name"]

    De cette façon, un shortcode comme celui-ci pourrait fonctionner (n'est-ce pas) :
    [contact-form to="[my_field_name]"]
    Parce que si un shortcode avec des guillemets est à l'intérieur d'un shortcode avec des guillemets, la gestion des guillemets/crochets à la fin le confond (c'est-à-dire qu'il ne fonctionne pas).

    Je ne vois pas de guillemets doubles dans votre fonction/extrait, donc je n'étais pas sûr.

    Merci beaucoup !

    1. Cliff Paulick July 21, 2011 at 6:16 pm

      J'ai essayé [field]my_field_name[/field] et cela n'a pas fonctionné.

      1. Je posterai des détails sur les shortcodes imbriqués demain, jetez-y un œil, cela vous donnera une meilleure idée de la façon dont cela doit fonctionner avec les shortcodes intégrés.

    2. Non, vous ne pouvez pas faire ça, cela ne fonctionnerait plus. Qu'essayez-vous de faire avec les shortcodes imbriqués ? L'imbrication de shortcodes ne fonctionnera pas non plus, cela va juste casser.

  23. Cliff Paulick July 19, 2011 at 6:47 pm

    Kevin, je pense que c'est EXACTEMENT ce que j'espérais trouver. Merci pour cela. Je veux être certain de savoir comment l'utiliser. Quand utiliseriez-vous le 2ème au lieu du 1er ? :
    [field “my_key”][field “my_key” post_id=1]

    Merci.

    1. Eh bien, si vous ajoutez le shortcode à un article, vous pouvez utiliser [field “my_key”] my_key est le nom du champ personnalisé. L'autre méthode [field “my_key” post_id=1] vous permettra de définir l'ID de l'article pour obtenir la valeur du champ personnalisé d'un article spécifique.

      1. Cliff Paulick July 19, 2011 at 8:03 pm

        Pourriez-vous avoir du code HTML dans un champ personnalisé qui « produit » ? Par exemple :

        Aujourd'hui est le plus beau jour du monde.
        Blah
        [field “list_of_images”]
        Les images ci-dessus sont magnifiques, n'est-ce pas ?
        Blah
        [field “html_block1”]
        Blah
        [field “html_block2”]
        Merci d'avoir lu mon blog.

        Et, pour être clair, si vous n'ajoutez pas de « post_id= », il récupérera simplement le champ personnalisé du post/de la page sur lequel vous vous trouvez déjà – le post actuel, n'est-ce pas ?

        1. 1. Sans ID, cela extraira simplement le champ personnalisé des publications actuelles.
          2. Je ne vois pas pourquoi cela ne fonctionnerait pas, vous devriez pouvoir mettre n'importe quoi dans le champ et il s'affichera.

        2. Cliff Paulick July 19, 2011 at 9:21 pm

          Je suppose que ce que je demande, c'est s'il rend le contenu du champ personnalisé comme s'il avait été saisi dans l'éditeur visuel ou comme s'il avait été saisi dans l'éditeur HTML.

        3. Non, il rendra le HTML sans problème.

  24. L'ajout de ce code dans function.php désactive mon site web. Qu'est-ce que je faisais de mal ?

    Shovan Sargunam
    De l'équipe http://tamilbabyname.org

    1. Obtenez-vous des erreurs ?

      1. A ) manque à la ligne 6, avant return;

        Fonctionne bien à part ça 🙂

        1. Cool merci, mis à jour le snippet,

  25. Tweets that mention Wordpress Get custom field value with shortcode – wpsnipp.com Wordpress code snippets for your blog -- Topsy.com January 20, 2011 at 6:14 pm

    […] Ce post a été mentionné sur Twitter par wp_freak, WPSNIPP. WPSNIPP a dit : #wordpress Obtenez la valeur d'un champ personnalisé avec un shortcode http://bit.ly/fWRRa3 #blog RT svp 🙂 […]

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre politique de confidentialité, et tous les liens sont nofollow. N'utilisez PAS de mots-clés dans le champ nom. Ayons une conversation personnelle et significative.

Liste de contrôle de lancement WordPress

La checklist ultime pour lancer un WordPress

Nous avons compilé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi l'eBook gratuit !