Disable WP Editor for specific page templates

The answer to this question is working great but I want to exclude the editor also when other templates are used. Can you please tell me how to extend the code to make this work with more than one template?

2 Answers

Yes, try this :

function remove_editor() {
    if (isset($_GET['post'])) {
        $id = $_GET['post'];
        $template = get_post_meta($id, '_wp_page_template', true);
        switch ($template) {
            case 'template_01.php':
            case 'template_02.php':
            case 'template_03.php':
            case 'template_04.php':
            // the below removes 'editor' support for 'pages'
            // if you want to remove for posts or custom post types as well
            // add this line for posts:
            // remove_post_type_support('post', 'editor');
            // add this line for custom post types and replace 
            // custom-post-type-name with the name of post type:
            // remove_post_type_support('custom-post-type-name', 'editor');
            remove_post_type_support('page', 'editor');
            default :
            // Don't remove any other template.
add_action('init', 'remove_editor');

Change the 'template_01.php' ... 'template_04.php' with your template names and if you want you can add more template names by adding more cases.

case 'template_05.php':

However, the above code and the code from the answer requires you to first set the page templates from the page edit screen.

I hope this helps and clears how this works.

Leave a Comment