submit_button( string $text = null, string $type = 'primary', string $name = 'submit', bool $wrap = true, array|string $other_attributes = null )

Echoes a submit button, with provided text and appropriate class(es).


Top ↑

See also

Top ↑


$text string Optional
The text of the button (defaults to 'Save Changes')

Default: null

$type string Optional
The type and CSS class(es) of the button. Core values include 'primary', 'small', and 'large'. Default 'primary'.

Default: 'primary'

$name string Optional
The HTML name of the submit button. Defaults to "submit". If no id attribute is given in $other_attributes below, $name will be used as the button's id.

Default: 'submit'

$wrap bool Optional
True if the output button should be wrapped in a paragraph tag, false otherwise. Defaults to true.

Default: true

$other_attributes array|string Optional
Other attributes that should be output with the button, mapping attributes to their values, such as setting tabindex to 1, etc.
These key/value attribute pairs will be output as attribute="value", where attribute is the key. Other attributes can also be provided as a string such as 'tabindex="1"', though the array format is preferred.

Default: null

Top ↑

More Information

This function cannot be used on the front end of the site, it is only available when loading the administration screens.

Parametr $type can be a single value, or a space separated list of values, or an array of values. The values determine the HTML classes of the button.

  • If $type is ‘delete’, the classes are ‘button-secondary delete’.
  • Otherwise the first class is ‘button’, followed by any of these in order of appearance:
    • type value ‘primary’ makes class ‘button-primary’
    • type value ‘small’ makes class ‘button-small’
    • type value ‘large’ makes class ‘button-large’
    • type value ‘secondary’ or ‘button-secondary’ is ignored (the ‘button’ class has the styling)
    • any other type value ‘foo’ makes the class ‘foo’

For example, the default $type ‘primary’ results in a button with HTML classes ‘button button-primary’.


This function does not return a value. The HTML for the button is output directly to the browser.

Uses the related function get_submit_button() , which returns the button as a string instead of echoing it. It has a different default $type, 'primary large', resulting in the HTML classes 'button button-primary button-large'.


Top ↑


File: wp-admin/includes/template.php. View all references

function submit_button( $text = null, $type = 'primary', $name = 'submit', $wrap = true, $other_attributes = null ) {
	echo get_submit_button( $text, $type, $name, $wrap, $other_attributes );

Top ↑


Version Description
3.1.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 2 content
    Contributed by Codex

    Display a Secondary Button
    WordPress styles secondary and primary buttons differently. Primary buttons are blue, and stand out more than secondary buttons, which are grey. By default, submit_button() outputs a primary button. To display a secondary button instead, set the $type parameter to 'secondary':

    submit_button( __( 'Reset', 'textdomain' ), 'secondary' );
  2. Skip to note 3 content
    Contributed by Codex

    Display a Delete Button
    By default, WordPress doesn’t currently appear to have custom styling for delete buttons, but it does give them the 'delete' HTML class. However, it’s possible that could change in the future, so it’s a good idea to specify the $type as 'delete' when displaying a delete button:

    submit_button( __( 'Delete', 'textdomain' ), 'delete' );

    By default, delete buttons will be displayed as secondary buttons, not primary. If you want to display it as a primary button, you can do it like this:

    submit_button( __( 'Delete', 'textdomain' ), 'delete button-primary' );
  3. Skip to note 4 content
    Contributed by Codex

    Using the $name Parameter
    The $name parameter may be used if you want to set the HTML name attribute for the button. By default, this will be 'submit'.

    submit_button( __( 'Save Settings', 'textdomain' ), 'primary', 'wpdocs-save-settings' );

    By default, the $name is also used to fill out the button’s id attribute. To change this, you can pass an id via the $other_attributes parameter:

    $other_attributes = array( 'id' => 'wpdocs-button-id' );
    submit_button( __( 'Save Settings', 'textdomain' ), 'primary', 'wpdocs-save-settings', true, $other_attributes );
  4. Skip to note 5 content
    Contributed by Codex

    Using the $wrap Parameter
    The $wrap parameter controls whether the button is wrapped in a paragraph tag, which it is by default. This can be a help or a hindrance depending on where an how you wish to display the button. To turn this behavior off, pass false for the fourth parameter:

    submit_button( __( 'Submit', 'textdomain' ), 'primary', 'submit-form', false );

You must log in before being able to contribute a note or feedback.