WordPress : Le shortcode ne fonctionne pas dans le champ d’option personnalisé, une solution ?
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_shortcode
la 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.
0 commentaire