我使用了一个JS插件将一个列表框添加到WordPress编辑器上的MCE按钮。
列表框按预期工作 - 它会下降,当您单击其中一个选项时,它会插入文本。但是,在第一次使用后,列表框保持活动状态,因此所有选项都是蓝色的(因为我的管理主题),并且没有悬停效果。
这似乎是因为第一次使用后每个下拉列表都添加了类mce-active
,然后才删除。为什么是这样?我没有告诉它这样做。
我的PHP是:
// add new buttons
add_filter( 'mce_buttons', 'myplugin_register_buttons' );
function myplugin_register_buttons( $buttons ) {
array_push( $buttons, 'separator', 'bf_rsvp_person_details', 'bf_rsvp_event_details' );
return $buttons;
}
// Load the TinyMCE plugin : editor_plugin.js (wp2.5)
add_filter( 'mce_external_plugins', 'myplugin_register_tinymce_javascript' );
function myplugin_register_tinymce_javascript( $plugin_array ) {
$plugin_array['bf_rsvp_person_details'] = plugins_url( '/jquery/bf_rsvp_personal_details.js',__FILE__ );
$plugin_array['bf_rsvp_event_details'] = plugins_url( '/jquery/bf_rsvp_event_details.js',__FILE__ );
return $plugin_array;
}
我的其中一个插件的JS(另一个在功能上相同)是:
tinymce.PluginManager.add('bf_rsvp_event_details', function(editor) {
editor.addButton('bf_rsvp_event_details', {
type: 'listbox',
text: 'Event Details',
icon: false,
tooltip: 'Insert the event details',
classes: 'bf_rsvp_list_box',
onselect: function(e) {
},
values: [
{text: 'Event name', onclick : function() {
editor.execCommand('mceInsertContent', false, '#eventname#');
}},
{text: 'Location', onclick : function() {
editor.execCommand('mceInsertContent', false, '#evenlocation#');
}},
{text: 'Date & Time', onclick : function() {
editor.execCommand('mceInsertContent', false, '#evendate#');
}},
{text: 'Description', onclick : function() {
editor.execCommand('mceInsertContent', false, '#eventdescription#');
}},
]
});
});