What is the “Advanced” $context in add_meta_box?

In the codex it lists the parameter $context for the add_meta_box as having the following options:

  1. normal
  2. advanced
  3. side

What does “advanced” do? I don’t see any difference between it and “normal”.

Related posts

Leave a Reply

1 comment

  1. The difference between normal and advanced is that normal will be placed on the page before advanced.

    For example the following will display “One” before “Two”

    function admin_init_test() {
        add_meta_box('one', __('One'), 'test_one', 'post', 'advanced');
        add_meta_box('two', __('Two'), 'test_two', 'post', 'normal');
    }
    add_action('admin_init', 'admin_init_test');
    
    function test_two() {
        echo "<p>test_two</p>";
    }
    function test_one() {
        echo "<p>test_one</p>";
    }
    

    If you switch the context parameter around, then “Two” will display before “One” on the edit page:

    add_meta_box('one', __('One'), 'test_one', 'post', 'normal');
    add_meta_box('two', __('Two'), 'test_two', 'post', 'advanced');
    

    Also if you reorder the meta boxes yourself by dragging them around then that order is saved and seems to take precedence over the ‘normal’ and ‘advanced’ contexts.