Returns a submit button, with provided text and appropriate class.
Parameters
$text
stringoptional- The text of the button. Defaults to ‘Save Changes’.
Default:
''
$type
stringoptional- The type and CSS class(es) of the button. Core values include
'primary'
,'small'
, and'large'
.Default:
'primary large'
$name
stringoptional- The HTML name of the submit button. If no
id
attribute is given in the$other_attributes
parameter,$name
will be used as the button’sid
. Default'submit'
.Default:
'submit'
$wrap
booloptional- True if the output button should be wrapped in a paragraph tag, false otherwise.
Default:
true
$other_attributes
array|stringoptional- Other attributes that should be output with the button, mapping attributes to their values, e.g.
array( 'id' => 'search-submit' )
.
These key/value attribute pairs will be output asattribute="value"
, where attribute is the key. Attributes can also be provided as a string, e.g.id="search-submit"
, though the array format is generally preferred.
Default:
''
Source
function get_submit_button( $text = '', $type = 'primary large', $name = 'submit', $wrap = true, $other_attributes = '' ) {
if ( ! is_array( $type ) ) {
$type = explode( ' ', $type );
}
$button_shorthand = array( 'primary', 'small', 'large' );
$classes = array( 'button' );
foreach ( $type as $t ) {
if ( 'secondary' === $t || 'button-secondary' === $t ) {
continue;
}
$classes[] = in_array( $t, $button_shorthand, true ) ? 'button-' . $t : $t;
}
// Remove empty items, remove duplicate items, and finally build a string.
$class = implode( ' ', array_unique( array_filter( $classes ) ) );
$text = $text ? $text : __( 'Save Changes' );
// Default the id attribute to $name unless an id was specifically provided in $other_attributes.
$id = $name;
if ( is_array( $other_attributes ) && isset( $other_attributes['id'] ) ) {
$id = $other_attributes['id'];
unset( $other_attributes['id'] );
}
$attributes = '';
if ( is_array( $other_attributes ) ) {
foreach ( $other_attributes as $attribute => $value ) {
$attributes .= $attribute . '="' . esc_attr( $value ) . '" '; // Trailing space is important.
}
} elseif ( ! empty( $other_attributes ) ) { // Attributes provided as a string.
$attributes = $other_attributes;
}
// Don't output empty name and id attributes.
$name_attr = $name ? ' name="' . esc_attr( $name ) . '"' : '';
$id_attr = $id ? ' id="' . esc_attr( $id ) . '"' : '';
$button = '<input type="submit"' . $name_attr . $id_attr . ' class="' . esc_attr( $class );
$button .= '" value="' . esc_attr( $text ) . '" ' . $attributes . ' />';
if ( $wrap ) {
$button = '<p class="submit">' . $button . '</p>';
}
return $button;
}
Changelog
Version | Description |
---|---|
3.1.0 | Introduced. |
There should be a note in the documentation stating that this function, as it is, is not designed to be run outside wp-admin.
Running the function as it is outside wp-admin results in
Fatal error: Uncaught Error: Call to undefined function get_submit_button()