Cacher l’éditeur de texte en fonction du modèle de page

Cacher l’éditeur de texte en fonction du modèle de page

Dans ce petit mémo, on va voir comment retirer l’éditeur de texte de la page d’édition d’un article.

add_action('init', 'init_remove_support',100);
function init_remove_support(){
    $post_type = 'post';
    remove_post_type_support( $post_type, 'editor');
}

Mais il se peut, dans des cas particuliers, qu’on ait envie de laisser l’éditeur pour certains types de pages, et l’enlever pour d’autres types de page :

Par exemple si l’on veut garder l’éditeur sur les pages classiques, mais n’utiliser que des custom fields ou metabox sur d’autres types de pages, il suffit d’appliquer une condition et de pointer le modèle de page en question :

add_action('init', 'remove_editor_init');
function remove_editor_init() {
    
    if (isset($_GET['post'])) {
        $post_id = $_GET['post'];
    } else if (isset($_POST['post_ID'])) {
        $post_id = $_POST['post_ID'];
    } else {
        return;
    }
    $template_file = get_post_meta($post_id, '_wp_page_template', TRUE);
    if ($template_file == 'commande.php') {
        remove_post_type_support('page', 'editor');
    }
}

Ici, toutes mes pages que je vais enregistrer sous le modèle de page « commande » n’auront plus l’éditeur de texte.
Dans ce cas, il faut prévoir des custom fields ou champs additionnels pour que l’utilisateur puisse quand même rentrer ses données. Comme on le voit ici, je n’ai plus d’éditeur dans ma page modèle « commande », je n’ai plus que mes metabox.

commande

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.