私はこれを何時間もやり遂げようとしてきましたが、頭がガタガタしています。
私はほぼそれを手に入れましたが、残念ながらコンテンツがラップされていない場合、ショートコードのタイトルが表示されます.
たとえば、私のタイトルの 1 つはショートコード 1 で、テキストをラップすると、[secondwidth]ここにコンテンツが入る[/ thirdwidth] と表示されます。
しかし、ラップしないと、タイトルが表示されます。
ショートコード 1[3 番目の幅][/3 番目の幅]
なぜこれを行うのですか?
これがphpフロントのコードです:
function register_customcode_dropdown( $buttons ) {
array_push( $buttons, "Shortcodes" );
return $buttons;
}
function add_customcode_dropdown( $plugin_array ) {
$plugin_array['Shortcodes'] = get_template_directory_uri() . '/style/js/TinyMCE_js.js';
return $plugin_array;
}
function customcode_dropdown() {
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_customcode_dropdown' );
add_filter( 'mce_buttons', 'register_customcode_dropdown' );
}
}
add_action('init', 'customcode_dropdown');
ここに TinyMCE_js.js ファイルがあります
(function() {
tinymce.create('tinymce.plugins.Shortcodes', {
init : function(ed, url) {
},
createControl : function(n, cm) {
if(n=='Shortcodes'){
var mlb = cm.createListBox('Shortcodes', {
title : 'Shortcodes',
onselect : function(v) {
if(tinyMCE.activeEditor.selection.getContent() == ''){
tinyMCE.activeEditor.selection.setContent( v )
}
if(v == 'shortcode 1'){
selected = tinyMCE.activeEditor.selection.getContent();
if( selected ){
//If text is selected when button is clicked
//Wrap shortcode around it.
content = '[thirdwidth]'+selected+'[/thirdwidth]';
}else{
content = '[thirdwidth][/thirdwidth]';
}
tinymce.execCommand('mceInsertContent', false, content);
}
if(v == 'shortcode 2'){
selected = tinyMCE.activeEditor.selection.getContent();
if( selected ){
//If text is selected when button is clicked
//Wrap shortcode around it.
content = '[12]'+selected+'[/12]';
}else{
content = '[12][/12]';
}
tinymce.execCommand('mceInsertContent', false, content);
}
}
});
// Add some menu items
var my_shortcodes = ['shortcode 1','shortcode 2'];
for(var i in my_shortcodes)
mlb.add(my_shortcodes[i],my_shortcodes[i]);
return mlb;
}
return null;
}
});
tinymce.PluginManager.add('Shortcodes', tinymce.plugins.Shortcodes);
})();
ありがとう