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.

Thank you!


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


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
    Perfect! Didn't know I could control every aspect of the visual editor using a filter. Thanks for the tip, and for the reference link! – André Mar 16 '12 at 15:12
  • This simply works. I love it. – Ardee Aram Apr 14 '13 at 15:21
  • 3
    The syntax has changed as of wp 3.9 (probably). Now it should be $init['block_formats'] = "Paragraph=p;Heading 3=h3;Heading 4=h4";. See wordpress.org/support/topic/… – Andreas Hultgren Jun 2 '14 at 13:36

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;}

add_action('admin_head', 'custom_css');

Heading 1 and Heading 2 should be hidden now.

  • Your solution is also very good for what I want, it works. Just as a note, the mce_<number> can be different for each locale (in my case, Portuguese, the numbers were the 4 and 5 for h1 and h2 respectively). Thanks for your help! – André Mar 16 '12 at 15:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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