WordPress : Publier du contenu affichant ci-dessous TOUS les contenus de shortcodes

Publié par Jean-Michel le

Pour une raison quelconque, le contenu de mes publications (le contenu placé en dehors des shortcodes que j’ai configurés) ne s’affiche qu’en dessous de tous les shortcodes, peu importe où je place le contenu dans la publication.

Par exemple, je pourrais créer un post comme celui-ci :

[boxes cat="Features"]

test content here

[boxes cat="Reviews"]

Et le contenu du test s’affichera sous les fonctionnalités ET les avis. Pourquoi ferait-il cela ? Certains de mes shortcodes utilisent le php include. Voici un exemple d’un de mes shortcodes :

function free_ms_cms( $atts, $content = null ) {
   $free_ms = TEMPLATEPATH . '/get-free-ms.php';
   include($free_ms);
}
add_shortcode( 'free-ms', 'free_ms_cms' );

Quelqu’un peut-il aider? Merci!

Solution n°1 trouvée

Vos shortcodes sont-ils correctement configurés ? Cela signifie généralement que votre gestion du shortcode fait écho au contenu du shortcode au lieu de le renvoyer sous forme de chaîne.

Pour votre cas, pendant que vous incluez un fichier dans votre shortcode, je doute que vous ayez la configuration du fichier pour renvoyer la sortie au lieu de l’écho.

Essayez ceci à la place :

function free_ms_cms( $atts, $content = null ) {
   $free_ms = TEMPLATEPATH . '/get-free-ms.php';
   ob_start(); //start an output buffer to capture any output
   include($free_ms);
   return ob_get_clean(); //return the current buffer and clear it
}
add_shortcode( 'free-ms', 'free_ms_cms' );
Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *