"/>

Insérer l’éditeur de texte wordpress dans une metabox

Voici un exemple de shortcode utilisant l’éditeur de wordpress (wp_editor).

Dans cet exemple, je n’affiche la metabox que dans le modèle de page ‘infographie’, avec un éditeur de texte généré par la fonction wp_editor de wordpress.

//Metabox genes
 function custom_left_meta_box() {   
if( 'post.php' == basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']) && !isset($_GET['post_type']) ) {

    // get post ID
    $postid = $_GET['post']; 

    // 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;
               }
        } 
    } 
 
    if (!empty($_POST['custom_left'])) {
        $data = $_POST['custom_left'];
        update_post_meta($post_id, 'custom_left', $data);   
    }
 }
add_action('save_post', 'custom_left_save_postdata');
add_action('admin_init', 'custom_left_meta_box');

Dans le backoffice, on retrouve bien l’éditeur dans la page d’édition du template de page.

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.