WordPress : Créer un shortcode dans le thème enfant ?

Publié par Jean-Michel le

J’ai créé un thème enfant, et j’essaye d’ajouter un shortcode à son fichier functions.php, en faisant ceci :

// functions.php of child theme

<?php

include(WP_CONTENT_DIR . '/graduates_functions.php');

?>

// graduates_functions.php

<?php

// [bartag foo="foo-value"]
function sayhi_func( $atts ) {

    extract( shortcode_atts( array(
        'graduate_type' => 'seo',
        'bar' => 'something else',
    ), $atts ) );
    echo 'test';
}

add_shortcode( 'sayhi', 'sayhi_func' );

?>

Mais quand je fais [sayhi] à partir d’une page, je ne vois pas l’écho, je vois [sayhi]. Cela fonctionne si j’ajoute la même chose dans le functions.php du thème lui-même, pas l’enfant.

Des pensées?

Solution n°1 trouvée

Les shortcodes ne « font pas écho », ils doivent « renvoyer » quelque chose. Donc je suppose que cela fonctionnera si vous mettez le contenu de vos fonctions entre ob_start et ob_get_clean afin que vous renvoyiez tout entre:

function yourfunction(){ ob_start(); /* insert here the code of your function */ $output = ob_get_clean(); return $output; }

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

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