WordPress : Le shortcode ne fonctionne pas dans le champ d’option personnalisé, une solution ?

Publié par Jean-Michel le

J’ai un champ personnalisé dans le thème Customizer qui permet de définir ses propres informations de copyright. J’ai créé un shortcode affichant l’année en cours. Comment faire fonctionner le shortcode lorsque quelqu’un l’a collé dans textarea?

J’utilise le framework Kirki pour créer des options de thème.

Kirki::add_field( 'my_customizer', array(
  'type'     => 'editor',
  'settings' => 'copyright',
  'label'    => __( 'Content', 'mytheme' ),
  'section'  => 'section_footer',
  'default'  => __( 'Copyright ? All rights reserved.', 'mytheme' ),
  'description' => __( 'You can use [current-year] shortcode if you want.', 'mytheme' ),
) );

Pour afficher l’option ci-dessus, j’ajoute ceci à footer.php :

echo Kirki::get_option( 'my_customizer', 'copyright' );

Ce que je vois sur le site :

Copyright ? [current-year] All rights reserved.
All rights reserved. ? [current-year] by XYZ
All rights reserved. ? 2016 - [current-year]

Ce que je dois réaliser :

Copyright ? 2019 All rights reserved.
All rights reserved. ? 2019 by XYZ
All rights reserved. ? 2016 - 2019

Une solution/idée ? Merci!

Solution n°1 trouvée

Si vous avez enregistré une chaîne de shortcode, essayez de lui faire écho avec do_shortcodela fonction, qui transforme les shortcodes en contenu.

$saved_shortcode = get_option( 'my_customizer', 'copyright' );
if ( $saved_shortcode && is_string( $saved_shortcode ) ) {
echo do_shortcode( $saved_shortcode );
}

Plus d’informations sur la fonction dans le manuel du développeur, https://developer.wordpress.org/reference/functions/do_shortcode/

ÉDITER

Une autre option consiste simplement à faire écho à l’année directement sur le modèle de pied de page sans obtenir d’abord la chaîne de code court de la base de données, puis à la rendre.

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 *