J'utilise le code suivant pour produire une barre TinyMCE différente de la configuration par défaut de WordPress:
if (function_exists('wp_tiny_mce')) {
add_filter("mce_external_plugins", "add_myplugin_tinymce_plugin");
add_filter('mce_buttons', 'register_myplugin_button');
add_filter('teeny_mce_before_init', create_function('$a', '
$a["theme"] = "advanced";
$a["skin"] = "wp_theme";
$a["height"] = "75";
$a["width"] = "800";
$a["onpageload"] = "";
$a["mode"] = "exact";
$a["elements"] = "Elm1, Elm2";
$a["editor_selector"] = "mceEditor";
$a["plugins"] = "safari,inlinepopups,spellchecker";
$a["forced_root_block"] = false;
$a["force_br_newlines"] = true;
$a["force_p_newlines"] = false;
$a["convert_newlines_to_brs"] = true;
return $a;'));
wp_tiny_mce(true);
}
Quelqu'un peut-il me dire comment utiliser un bouton personnalisé de base?
Tout ce dont j'ai besoin est un bouton simple qui affiche [ph_min] dans la zone d'édition.
J'ai essayé d'utiliser les filtres suivants en vain:
function register_tcustom_button($buttons)
{
array_Push($buttons, "|", "highlight");
return $buttons;
}
function add_tcustom_tinymce_plugin($plugin_array)
{
$plugin_array['highlight'] = WP_PLUGIN_URL . '/sf-tinyMCE-custom-buttons/mce/min_max_buttons/editor_plugin.js';
return $plugin_array;
}
add_filter("mce_external_plugins", "add_tcustom_tinymce_plugin");
add_filter('mce_buttons', 'register_tcustom_button');
Y a-t-il un moyen de faire cela ou devrais-je utiliser l'écriture d'un init TinyMCE manuel qui n'est pas pris en charge par WP?
Je crois que vous avez déjà enregistré votre shortcode. Nous devons maintenant lancer le bouton. Une fois le shortcode enregistré [ph_min], vérifions si l’utilisateur peut utiliser l’édition riche:
function add_highlight_button() {
if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') )
return;
if ( get_user_option('rich_editing') == 'true') {
add_filter('mce_external_plugins', 'add_tcustom_tinymce_plugin');
add_filter('mce_buttons', 'register_tcustom_button');
}
}
add_action('init', 'add_highlight_button');
Maintenant, enregistrons le bouton
function register_tcustom_button( $buttons ) {
array_Push( $buttons, "|", "highlight" );
return $buttons;
}
Enregistrons maintenant le plugin TinyMCE
function add_tcustom_tinymce_plugin( $plugin_array ) {
$plugin_array['mylink'] = get_bloginfo( 'template_url' ) . '/script/mybuttons.js';
return $plugin_array;
}
Et ceci est pour le fichier JS appelé à partir de la fonction précédente:
(function() {
tinymce.create('tinymce.plugins.highlight', {
init : function(ed, url) {
ed.addButton('highlight', {
title : 'Highlight',
image : url+'/yourlink.png',
onclick : function() {
ed.selection.setContent('[ph_min]');
}
});
},
createControl : function(n, cm) {
return null;
},
});
tinymce.PluginManager.add('highlight', tinymce.plugins.highlight);
})();
C'est à peu près ça.