<?php
add_filter( 'mce_buttons', function( $originalButtonsInFirstRow ){
$buttonsToAdd = [
//'new_button_ID_to_add' => 'put_it_after_button_ID',
'alignjustify' => 'alignright', //add justify after align right
'underline' => 'italic', //add underline after italic
];
$newButtonsInFirstRow = [];
foreach( $originalButtonsInFirstRow as $buttonID ){
$newButtonsInFirstRow[] = $buttonID; //re-push originals to keep them intact
foreach( $buttonsToAdd as $newButtonID => $putItAfterButtonID ){
//Firstly, chack whether the button was already added by us or not! (...!==true)
if( ($putItAfterButtonID !== true) && ($buttonID == $putItAfterButtonID) ){
$newButtonsInFirstRow[] = $newButtonID;
$buttonsToAdd[$newButtonID] = true; //make a note that button was added
}
}
}
//Now check, if all buttons where actually added (in case "put_it_after_button_ID" was missing...)
foreach( $buttonsToAdd as $newButtonID => $putItAfterButtonID ){
// check if the button was added (note the type check !== (negated ===))
//if the button wasn't added, put it at the and of the buttons array
if( $putItAfterButtonID !== true )
$newButtonsInFirstRow[] = $newButtonID;
}
return $newButtonsInFirstRow;
}, 5 );
PD9waHAKCmFkZF9maWx0ZXIoICdtY2VfYnV0dG9ucycsIGZ1bmN0aW9uKCAkb3JpZ2luYWxCdXR0b25zSW5GaXJzdFJvdyApewogICAgJGJ1dHRvbnNUb0FkZCA9IFsKICAgICAgLy8nbmV3X2J1dHRvbl9JRF90b19hZGQnID0+ICdwdXRfaXRfYWZ0ZXJfYnV0dG9uX0lEJywKICAgICAgJ2FsaWduanVzdGlmeScgID0+ICdhbGlnbnJpZ2h0JywgLy9hZGQganVzdGlmeSBhZnRlciBhbGlnbiByaWdodAogICAgICAndW5kZXJsaW5lJyAgICAgPT4gJ2l0YWxpYycsIC8vYWRkIHVuZGVybGluZSBhZnRlciBpdGFsaWMKICAgIF07CiAgICAkbmV3QnV0dG9uc0luRmlyc3RSb3cgPSBbXTsKICAgIGZvcmVhY2goICRvcmlnaW5hbEJ1dHRvbnNJbkZpcnN0Um93IGFzICRidXR0b25JRCApewogICAgICAgICRuZXdCdXR0b25zSW5GaXJzdFJvd1tdID0gJGJ1dHRvbklEOyAvL3JlLXB1c2ggb3JpZ2luYWxzIHRvIGtlZXAgdGhlbSBpbnRhY3QKICAgICAgICAKICAgICAgICBmb3JlYWNoKCAkYnV0dG9uc1RvQWRkIGFzICRuZXdCdXR0b25JRCA9PiAkcHV0SXRBZnRlckJ1dHRvbklEICl7CiAgICAgICAgCS8vRmlyc3RseSwgY2hhY2sgd2hldGhlciB0aGUgYnV0dG9uIHdhcyBhbHJlYWR5IGFkZGVkIGJ5IHVzIG9yIG5vdCEgKC4uLiE9PXRydWUpCiAgICAgICAgICAgIGlmKCAoJHB1dEl0QWZ0ZXJCdXR0b25JRCAhPT0gdHJ1ZSkgJiYgKCRidXR0b25JRCA9PSAkcHV0SXRBZnRlckJ1dHRvbklEKSApewogICAgICAgICAgICAgICRuZXdCdXR0b25zSW5GaXJzdFJvd1tdID0gJG5ld0J1dHRvbklEOwogICAgICAgICAgICAgICRidXR0b25zVG9BZGRbJG5ld0J1dHRvbklEXSA9IHRydWU7IC8vbWFrZSBhIG5vdGUgdGhhdCBidXR0b24gd2FzIGFkZGVkCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAKICAgIC8vTm93IGNoZWNrLCBpZiBhbGwgYnV0dG9ucyB3aGVyZSBhY3R1YWxseSBhZGRlZCAoaW4gY2FzZSAicHV0X2l0X2FmdGVyX2J1dHRvbl9JRCIgd2FzIG1pc3NpbmcuLi4pCiAgICBmb3JlYWNoKCAkYnV0dG9uc1RvQWRkIGFzICRuZXdCdXR0b25JRCA9PiAkcHV0SXRBZnRlckJ1dHRvbklEICl7CiAgICAgICAgLy8gY2hlY2sgaWYgdGhlIGJ1dHRvbiB3YXMgYWRkZWQgKG5vdGUgdGhlIHR5cGUgY2hlY2sgIT09IChuZWdhdGVkID09PSkpCiAgICAgICAgLy9pZiB0aGUgYnV0dG9uIHdhc24ndCBhZGRlZCwgcHV0IGl0IGF0IHRoZSBhbmQgb2YgdGhlIGJ1dHRvbnMgYXJyYXkKICAgICAgICBpZiggJHB1dEl0QWZ0ZXJCdXR0b25JRCAhPT0gdHJ1ZSApIAogICAgICAgICAgJG5ld0J1dHRvbnNJbkZpcnN0Um93W10gPSAkbmV3QnV0dG9uSUQ7IAogICAgfQogICAgCiAgICAKICAgIHJldHVybiAkbmV3QnV0dG9uc0luRmlyc3RSb3c7ICAKfSwgNSApOw==