"/>

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 e-mail 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.