0
我想在wordpress 4.1中用tinmyce插件创建一个选项卡短代码。 这里是我的functions.php中添加短代码按钮的编辑器。Wordpress Tinymce Tabs(ul-li elements)
function site_shortcodes() {
if (!current_user_can('edit_posts') && !current_user_can('edit_pages')) return;
if ('true' == get_user_option('rich_editing')):
add_filter('mce_external_plugins', 'site_tinymce_plugin');
add_filter('mce_buttons', 'site_mce_button');
endif;
}
add_action('admin_head', 'site_shortcodes');
function site_tinymce_plugin($plugin_array) {
$plugin_array['my_mce_button'] = get_template_directory_uri() .'/js/shortcodes.js';
return $plugin_array;
}
function site_mce_button($buttons) {
array_push($buttons, 'my_mce_button');
return $buttons;
}
和我shortcodes.js文件
(function() {
tinymce.PluginManager.add('my_mce_button', function(editor, url) {
editor.addButton('my_mce_button', {
text: 'Shortcodes',
icon: false,
type: 'menubutton',
menu: [
{
text: 'Tabs',
onclick: function() {
editor.windowManager.open({
title: 'Insert Tabs',
body: [
{
type: 'textbox',
name: 'tabnum',
label: 'Number of Tabs',
value: ''
}
],
onsubmit: function(e) {
var $tabs_li = '';
for(var i = 1;i <= e.data.tabnum;i++){
$tabs_li += '[tab id="Tab ' + i + '" ]Content ' + i + '[/tab]';
}
editor.insertContent('[tabs]' + $tabs_li + '[/tabs]');
}
});
}
},
]
});
});
})();
和我shortcode.php
add_shortcode('tab', 'tab');
function tab($attr, $content = null) {
$output = '';
$output .= '<li>'.$content.'</li>';
return '<ul>'.$output.</ul>';
}
我的目标是让图案
<ul class="tabs">
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
但它打印如
<ul><li></li></ul>
<ul><li></li></ul>
<ul><li></li></ul>
<ul><li></li></ul>
任何想法如何解决这个问题?