I would like to remove the visual editor from one specific page because if I edit this one page in Visual mode, it breaks the code. I want to make sure the client doesn't have this option on the particular page. However, I don't want to remove the html editor.

This line of code removes the visual editor and the html editor: remove_post_type_support('page', 'editor');

a closer look at remove_post_type_support: http://codex.wordpress.org/Function_Reference/remove_post_type_support

But I want to only disable the visual editor.

Initial testing, in functions.php for this theme, I have:

function remove_editor_init() {

 if ( is_admin() ) {
    if (is_page(2548)) { 

    remove_post_type_support('page', 'editor');
add_action('init', 'remove_editor_init');

However, the conditional statements is_admin() and is_page() don't seem to working together.

Any suggestions?

2 Answers 2


In your code, calling the action admin_init makes is_admin() unnecessary. And, if not mistaken, is_page() is meant to be used in the front-end...

But the solution is the following (based on this Answer):

add_filter( 'user_can_richedit', 'wpse_58501_page_can_richedit' );

function wpse_58501_page_can_richedit( $can ) 
    global $post;

    if ( 28 == $post->ID )
        return false;

    return $can;

This is how I've resolved this:

add_filter( 'admin_footer', 'removes_editor_visual_tab', 99 );

function removes_editor_visual_tab()
    $post_id = $_GET['post'];
    if($post_id == 1434){
        <style type="text/css">
        a#content-tmce, a#content-tmce:hover {
        <script type="text/javascript">
        jQuery(document).ready(function() {
            document.getElementById("content-tmce").onclick = 'none';

You can select the page ID(s) that you'd like this to reflect on

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.