WordPress : retourner et exécuter un shortcode dans une fonction

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("[video src='$vid_url' width='600' height='480' type='video/mp4' preload='true']");
}

Cet exemple exécute le shortcode [video].

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à !

Vous avez un projet WordPress ou WooCommerce en tête? Transformez votre vision en réalité avec mon expertise reconnue.

Parlons de votre projet dès aujourd'hui »

Articles conseillés :

Opinions