Lorsque j'essaie d'intégrer une vidéo YouTube en utilisant l'une des méthodes suivantes:
[embed]
shortcode[embed]
)Je vois la vidéo très bien dans la vue de l'éditeur:
Mais dans la vue frontale, en utilisant ce code:
$content_desktop = do_shortcode(get_the_content());
Je vois
Choses que j'ai vérifiées:
Y at-il quelque chose de bien connu qui pourrait être la cause?
Je viens de regarder la source de la classe WP_Embed, et il semble qu'ils n'enregistrent pas réellement un shortcode, mais qu'ils soient connectés au filtre the_content
.
Changez votre code en
$content_desktop = apply_filters("the_content", get_the_content());
ou déclencher manuellement leur filtre avec quelque chose comme
$content_desktop = WP_Embed::run_shortcode(get_the_content());
ou, si vous préférez avoir un objet:
$myembeds = new WP_Embed;
$content_desktop = $myembeds->run_shortcode(get_the_content());
Voir aussi WP_Embed :: run_shortcode dans le codex et le code source de class-wp-embed.php .