Ajout de bouton dans l’editeur wordpress
J’ai enfin trouvé comment ajouter autant de bouton que je le souhaite dans mon wordpress. tout en permettant l’insertion de « shortcode » pour chacun. Alors voici ma solution pour l’ajout d’un bouton de lien retour par exemple :
Dans le fichier functions.php de votre thème ajouter ceci :
function addBack($atts, $content = null) {
$html = "? Retour";
return $html;
}
add_shortcode('lienretour', 'addBack');
function add_back_button() {
// Don't bother doing this stuff if the current user lacks permissions
if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') )
return;
// Add only in Rich Editor mode
if ( get_user_option('rich_editing') == 'true') {
add_filter("mce_external_plugins", "add_back_tinymce_plugin");
add_filter('mce_buttons', 'register_back_button');
}
}
function register_back_button($buttons) {
array_push($buttons, "|", "yourback");
return $buttons;
}
function add_back_tinymce_plugin($plugin_array) {
$plugin_array['yourback'] = get_bloginfo('template_url').'/custom/editor_plugin.js';
return $plugin_array;
}
function my_refresh_mce($ver) {
$ver += 3;
return $ver;
}
add_filter( 'tiny_mce_version', 'my_refresh_mce');
add_action('init', 'add_back_button');
Puis dans un dossier « custom » que vous créer dans le dossier de votre thème ajouter votre bouton (ici retour.png)
et un fichier « editor_plugin.js » contenant ceci :
(function() {
tinymce.create('tinymce.plugins.YourBack', {
init : function(ed, url) {
ed.addButton('yourback', {
title : 'Lien retour',
image : url+'/retour.png',
onclick : function() {
ed.execCommand('mceInsertContent', false, '[lienretour]');
}
});
},
createControl : function(n, cm) {
return null;
},
getInfo : function() {
return {
longname : "Retour Shortcode",
author : 'Sophie Martin',
authorurl : 'http://quiboweb.com/',
infourl : 'http://quiboweb.com/',
version : "1.0"
};
}
});
tinymce.PluginManager.add('yourback', tinymce.plugins.YourBack);
})();
Et le tour est joué !
On peut en ajouter de cette manière autant que l’on souhaite.


