Home » wordpress » Metabox et wp_editor : interpréter les shortcodes
Metabox et wp_editor : interpréter les shortcodes
Pour faire suite à nos autres tutoriels sur les shortcodes et les metabox, on va voir ici comment utiliser des shortcodes dans une metabox contenant la fonction wp_editor. Par défaut, si vous créez une metabox contenant la fonction wp_editor, en affichant la metabox, l’éditeur n’interprétera pas votre shortcode. Il le ressortira tel quel dans le texte, c’est à dire :
[mon_shortocde]mon contenu[/mon_shortcode]
Créer une metabox avec la fonction wp_editor
Pour rappel voici une manière de créer une metabox qui embarque l’éditeur de texte de wordpress.
// check the template file name if ( 'infographie.php' == get_page_template_slug($postid)) { add_meta_box ( 'custom-left', __('Custom Left', 'custom-left') , 'custom_left', 'post' ); } } } //Displaying the meta box function custom_left($post) { echo "<h3>Add Your Left text Here</h3>"; $content = get_post_meta($post->ID, 'custom_left', true); //This function adds the WYSIWYG Editor wp_editor ( $content , 'custom_left', array ( "media_buttons" => true ) ); }
//This function saves the data you put in the meta box function custom_left_save_postdata($post_id) { if( isset( $_POST['custom_left_nonce'] ) && isset( $_POST['page'] ) ) { //Not save if the user hasn't submitted changes if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Verifying whether input is coming from the proper form if ( ! wp_verify_nonce ( $_POST['custom_left_nonce'] ) ) { return; } // Making sure the user has permission if( 'post' == $_POST['page'] ) { if( ! current_user_can( 'edit_post', $post_id ) ) { return; } } }
On crée ici une metabox « custom left ». Celle-ci va par exemple nous aider à ajouter du contenu sur la partie gauche de la page. On souhaite ensuite dans cet éditeur insérer du contenu, notamment via des shortcodes. On limite son affichage à un seul template de page nommé ici « infographie ».
Dans notre fonction d’affichage « custom_left’ on fait appel à la fonction wp_editor. Cela va nous permettre d’avoir un deuxième éditeur de texte dans la page d’édition de la page.
Lire un shortcode dans la metabox
Ensuite, dans notre fichier qui va afficher le contenu, on fait appel à notre metabox, en l’entourant de la fonction wpautop(), qui va filtrer et formatter notre texte.