The mce_buttons_2 WordPress PHP filter allows you to modify the second-row list of TinyMCE buttons in the Visual tab of the WordPress editor.
Usage
add_filter( 'mce_buttons_2', 'your_custom_function', 10, 2 ); function your_custom_function( $mce_buttons_2, $editor_id ) { // your custom code here return $mce_buttons_2; }
Parameters
- $mce_buttons_2 (array): Second-row list of buttons.
- $editor_id (string): Unique editor identifier, e.g. ‘content’. Accepts ‘classic-block’ when called from block editor’s Classic block.
More information
See WordPress Developer Resources: mce_buttons_2
Examples
Add a button to the second row
Add a custom button to the second row of TinyMCE buttons:
add_filter( 'mce_buttons_2', 'add_custom_button', 10, 2 ); function add_custom_button( $mce_buttons_2, $editor_id ) { $mce_buttons_2[] = 'custom_button'; return $mce_buttons_2; }
Remove a button from the second row
Remove the ‘strikethrough’ button from the second row of TinyMCE buttons:
add_filter( 'mce_buttons_2', 'remove_strikethrough_button', 10, 2 ); function remove_strikethrough_button( $mce_buttons_2, $editor_id ) { $key = array_search( 'strikethrough', $mce_buttons_2 ); if ( false !== $key ) { unset( $mce_buttons_2[ $key ] ); } return $mce_buttons_2; }
Rearrange buttons in the second row
Rearrange the buttons in the second row of TinyMCE buttons:
add_filter( 'mce_buttons_2', 'rearrange_buttons', 10, 2 ); function rearrange_buttons( $mce_buttons_2, $editor_id ) { // Define the new order of buttons $new_order = array( 'bold', 'italic', 'underline', 'strikethrough' ); // Reorder the buttons according to the new order $mce_buttons_2 = array_intersect( $new_order, $mce_buttons_2 ); return $mce_buttons_2; }
Add a separator between buttons
Add a separator between two buttons in the second row of TinyMCE buttons:
add_filter( 'mce_buttons_2', 'add_separator', 10, 2 ); function add_separator( $mce_buttons_2, $editor_id ) { $position = array_search( 'italic', $mce_buttons_2 ); if ( false !== $position ) { array_splice( $mce_buttons_2, $position + 1, 0, '|' ); } return $mce_buttons_2; }
Add a custom button only for the Classic Block
Add a custom button to the second row of TinyMCE buttons only when the editor is the Classic Block:
add_filter( 'mce_buttons_2', 'add_custom_button_classic_block', 10, 2 ); function add_custom_button_classic_block( $mce_buttons_2, $editor_id ) { if ( 'classic-block' === $editor_id ) { $mce_buttons_2[] = 'custom_button_classic_block'; } return $mce_buttons_2; }