Wordpress - Hide page visual editor if certain template is selected?
add_action( 'init', 'remove_editor_init' );
function remove_editor_init() {
// If not in the admin, return.
if ( ! is_admin() ) {
return;
}
// Get the post ID on edit post with filter_input super global inspection.
$current_post_id = filter_input( INPUT_GET, 'post', FILTER_SANITIZE_NUMBER_INT );
// Get the post ID on update post with filter_input super global inspection.
$update_post_id = filter_input( INPUT_POST, 'post_ID', FILTER_SANITIZE_NUMBER_INT );
// Check to see if the post ID is set, else return.
if ( isset( $current_post_id ) ) {
$post_id = absint( $current_post_id );
} else if ( isset( $update_post_id ) ) {
$post_id = absint( $update_post_id );
} else {
return;
}
// Don't do anything unless there is a post_id.
if ( isset( $post_id ) ) {
// Get the template of the current post.
$template_file = get_post_meta( $post_id, '_wp_page_template', true );
// Example of removing page editor for page-your-template.php template.
if ( 'page-your-template.php' === $template_file ) {
remove_post_type_support( 'page', 'editor' );
// Other features can also be removed in addition to the editor. See: https://codex.wordpress.org/Function_Reference/remove_post_type_support.
}
}
}
add_action('init', 'remove_editor_init');
function remove_editor_init() {
remove_post_type_support('page', 'editor');
}
You can wrap this inside your existing logic for detecting the current page template, so you only disable the editor for specific pages.
See: http://codex.wordpress.org/Function_Reference/remove_post_type_support
you can add a simple CSS rule with display:none;
in your metabox function code:
if ($template_file == 'template-page-2quotes.php') {
echo '<style>#postdivrich{display:none;}</style>';
}