Wordpress icon

Pour les besoins du Centre de Kriya Yoga France, j’ai écrit une fonction qui doit afficher une vidéo automatiquement.

Or je voulais juste renvoyer un shortcode vidéo qui prendrait en charge toute la partie code du lecteur vidéo.

On ne peut pas juste renvoyer la valeur, il faut utiliser la fonction do_shortcode() de WordPress.

Cas 1 : exécuter un shortcode dans une fonction

La solution réside dans l’utilisation de la fonction do_shortcode(). Voici un petit exemple :

<?php
/*
|-----------------------------------------------------------------------
| Sky Show Video by Matt - www.skyminds.net
|-----------------------------------------------------------------------
|
| Returns shortcode to be executed in WordPress.
|
*/
function sky_show_video($content) {
   // do stuff
   // return video
   return do_shortcode("$vid_url");
}

Cet exemple exécute le shortcode .

Cas 2 : retourner l’URL d’une vidéo YouTube et demander à WordPress de l’intégrer via Oembed

Avec une vidéo YouTube et rien ne s’affichait : la fonction renvoyait bien l’URL de la vidéo mais WordPress ne la transformait pas via oembed.

La solution : appliquer la fonction apply_filters() à notre vidéo dans the_content() :

<?php
/*
|-----------------------------------------------------------------------
| Sky Show YT Video by Matt - www.skyminds.net
|-----------------------------------------------------------------------
|
| Returns oembedded YouTube video.
|
*/
function sky_show_ytvideo($content) {
   // put YouTube video URL in $var and apply the filters
   $var = apply_filters('the_content', "https://www.youtube.com/watch?v=4rV2pfTbBxU&rel=0"); 
   // return modified content 
   return $var;
}

Et voilà !

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée.

Vous souhaitez réaliser un nouveau projet WordPress ou WooCommerce, ou ajouter de nouvelles fonctionnalités? Ou améliorer les performances de votre site?

Parlons de votre projet »

Articles en rapport:

Écrire un commentaire

Spelling error report

The following text will be sent to our editors: