Disable h1 and h2 from rich text editor combobox

In the WordPress control panel, when writing a new post, I would like to disable the Header 1 and Header 2 from the text formatting combobox, because I already use them on my theme (h1 for blog name and h2 for post titles), and would like to keep all headers inside a post with h3 or higher. Is that possible?

It doesn’t matter for the case if the code can be edited in the HTML view. Also, I don’t want to edit WordPress internal files, so a hack for functions.php or a plugin would be great for this task, in order to preserve this change across future updates.

Read More

Thank you!

Related posts

Leave a Reply

2 comments

  1. you can change lots of things about the tinyMCE editor at the tiny_mce_before_init filter.

    http://codex.wordpress.org/TinyMCE_Custom_Buttons

    the following will restrict your blockformats to p,h3,h4 and blockquote

    function wpa_45815($arr){
        $arr['theme_advanced_blockformats'] = 'p,h3,h4,blockquote';
        return $arr;
      }
    add_filter('tiny_mce_before_init', 'wpa_45815');
    

    EDIT for WordPress 3.9 see link

    function wpa_45815($arr){
        $arr['block_formats'] = 'Paragraph=p;Heading 3=h3;Heading 4=h4';
        return $arr;
      }
    add_filter('tiny_mce_before_init', 'wpa_45815');
    
  2. This is a quick and dirty solution but it may work if your objective is to disable H1 and H2.

    Add this code to your functions.php file

    function custom_css() {
    echo '<style type="text/css">
           #menu_content_content_formatselect_menu #mce_9, #menu_content_content_formatselect_menu #mce_10 {display:none;}
         </style>';
    }
    
    add_action('admin_head', 'custom_css');
    

    Heading 1 and Heading 2 should be hidden now.