Aqui te dejo mis pasos, compatibles con la ultima version de WP 4.1
Son 3 pasos
1.- Agregar el boton al menu, yo lo agrego a lado de boton de add media para mayor visibilidad
Código PHP:
Ver originalfunction add_button(){
echo '<a href="#" id="some-id" class="button">' . __('Button Text', 'textdomain') . '</a>';
}
add_action( 'media_buttons', 'add_button' );
2.- Agregar el plugin correspondiente que es el que maneja toda la logica, es decir que se hara cuando se de click en el boton.
Código PHP:
Ver originalfunction add_mce_plugin($plugins_array){
$plugins_array['impactfulplugin'] = plugin_dir_url( __FILE__ ) . 'js/file-mce-plugin.js';
return $plugins_array;
}
add_filter( 'mce_external_plugins', 'add_mce_plugin');
Finalmente el JS que controla toda la logica y que ejecuta el comando del TYNIMCE
Código Javascript
:
Ver original(function($) {
/**********************************************************************
* SHORTCODE GENERATOR
**********************************************************************/
tinymce.PluginManager.add('impactfulplugin', function( ed ) {
$('#some-id').on('click', function(event) {
//Muestra tu UI
//aka el creador del shortcode
});
$('#button-impactful-insert').on('click', function(event) {
//este es el boton que crea el shorcode
event.preventDefault();
ed.execCommand('addImpactfulShortcode');
//Cerrar tu UI
});
ed.addCommand('addImpactfulShortcode', function() {
var shortcode = "[shortcode_name]";
ed.execCommand('mceInsertContent', 0, shortcode);
});
});
})( window.jQuery );