WordPress の tinymce でカスタム ドロップダウン ボックスを作成する方法を知っている人はいますか? 少なくともワードプレス 3.0 で動作する必要があります。
これに関するチュートリアルをインターネットで検索しましたが、見つかりません。ウェブサイトのチュートリアルへのリンクは素晴らしいでしょう。
前もって感謝します。
この質問は以前にすでに尋ねられたことは知っていますが、同じ問題に出くわしたので、とにかくこの質問に答えようと思いました。多分それは他の誰かを助けるでしょう。
tinyMCEの DropDown-Controlのソースにあるコメントは、非常に役に立ちました。
最初に を使用してドロップダウンを作成するだけでcreateDropMenu()
、メソッドを呼び出してadd()
アイテムをドロップダウンに追加できます。
/**
* This class is used to create drop menus, a drop menu can be a
* context menu, or a menu for a list box or a menu bar.
*
* @class tinymce.ui.DropMenu
* @extends tinymce.ui.Menu
* @example
* // Adds a menu to the currently active editor instance
* var dm = tinyMCE.activeEditor.controlManager.createDropMenu('somemenu');
*
* // Add some menu items
* dm.add({title : 'Menu 1', onclick : function() {
* alert('Item 1 was clicked.');
* }});
*
* dm.add({title : 'Menu 2', onclick : function() {
* alert('Item 2 was clicked.');
* }});
*
* // Adds a submenu
* var sub1 = dm.addMenu({title : 'Menu 3'});
* sub1.add({title : 'Menu 1.1', onclick : function() {
* alert('Item 1.1 was clicked.');
* }});
*/
これによりボタンが追加されるので、微調整してドロップダウンボックスを作成するだけです
// register button
function register_button($buttons) {
array_push($buttons, "btn");
return $buttons;
}
// add button
function add_button() {
if ( current_user_can('edit_posts') && current_user_can('edit_pages') )
{
add_filter('mce_external_plugins', 'add_plugin');
add_filter('mce_buttons', 'register_button');
}
}
// add plugin
function add_plugin($plugin_array) {
$plugin_array['btn'] =get_bloginfo('template_url').'/js/customcodes.js';
return $plugin_array;
}
次に、 を js ファイルに追加する必要があります。
(function() {
tinymce.create('tinymce.plugins.btn', {
init : function(ed, url) {
ed.addButton('btn', {
title : 'Add a btn',
image : url+'/btn.png',
onclick : function() {
ed.selection.setContent('[btn]');
}
});
},
createControl : function(n, cm) {
return null;
},
});
tinymce.PluginManager.add('btn', tinymce.plugins.btn);
})();