1

私は、これがこのコードのより良い代替物であり、ハッキーに見えないようにするかどうか疑問に思っています:

active_tiny_editor = setInterval(function () {
if(tinyMCE.activeEditor!==null){
    my_object.switch_tabs('tmce');
    clearInterval(active_tiny_editor);
}
}, 200);

理想的には、ページの再読み込み後に Wordpress のビジュアル エディターが表示されなくなることが問題です。コンテンツを表示するには、テキスト モードに戻り、ビジュアル エディターに再度切り替える必要があります。

最初のロード後にページで何かが正しく初期化されていないようで、編集モードを切り替えると修正されます。

アイデアがあれば教えてください。ありがとう。

アップデート:

これはコードです:

            // select active editor tab
            switch(bootstrap_config_object.editor_active_tab)
            {
                case 0:
                    bootstrap_object.switch_tabs('html');                        
                    break;
                case 1:
                    if(bootstrap_config_object.tmce_editor_status==1){                          
                        active_tiny_editor = setInterval(function () {                              
                            if(tinyMCE.activeEditor!==null){                                    
                                bootstrap_object.switch_tabs('tmce');
                                clearInterval(active_tiny_editor);                                    
                            }
                        }, 200);
                    }else{                          
                        bootstrap_object.switch_tabs('html');                            
                    }
                    break;
                case 2:                     
                    bootstrap_object.switch_tabs('syntax');                        
                    myCodeMirror.refresh();
                    break;
            }

次に、これはタブの切り替えロジックを含む bootstrap_object です。

switch_tabs: function(do_active) {// switch active tabs   
    switch(do_active)
    {
        case 'html':                
            jQuery('#content-html').addClass('switch-html');
            jQuery('#content-bootstrap').removeClass('switch-bootstrap');
            jQuery('#wrap-code-bootstrap, #codemirror-insert-media').addClass('element-hide');
            jQuery('#content, #ed_toolbar, .insert-media, #content-resize-handle').removeClass('element-hide');
            jQuery('#wp-content-wrap').addClass('html-active').removeClass('syntax-active').removeClass('tmce-active');

            jQuery('#content').show();
            jQuery('#content_parent, .CodeMirror').hide();               

            if(bootstrap_config_object.codemirror_status==1){                   
                bootstrap_object.replase_shortcode_add_method('normal');
            }
            break;
        case 'tmce':                
                            active_tiny_editor = setInterval(function () {
                            if(tinyMCE.activeEditor!==null){
                                jQuery('#content_parent').show();
                                clearInterval(active_tiny_editor);
                            }
                        }, 200);                
            jQuery('#content-tmce').addClass('switch-tmce');
            jQuery('#content-bootstrap').removeClass('switch-bootstrap');
            jQuery('#wrap-code-bootstrap, #content, #ed_toolbar, #codemirror-insert-media').addClass('element-hide');
            jQuery('#content_parent, .insert-media, #content-resize-handle').removeClass('element-hide');
            jQuery('#wp-content-wrap').addClass('tmce-active').removeClass('syntax-active').removeClass('html-active');

            jQuery('#content_parent').show();
            jQuery('.CodeMirror, #content').hide();

            if(bootstrap_config_object.codemirror_status==1){                   
                bootstrap_object.replase_shortcode_add_method('normal');
            }
            break;
        case 'syntax':              
            jQuery('#content-bootstrap').addClass('switch-bootstrap');
            jQuery('.wp-switch-editor').removeClass('switch-tmce switch-html');
            jQuery('#content_parent, #content, #ed_toolbar, .insert-media, #content-resize-handle').addClass('element-hide');
            jQuery('#wrap-code-bootstrap, #codemirror-insert-media').removeClass('element-hide');
            jQuery('#wp-content-wrap').addClass('syntax-active').removeClass('tmce-active').removeClass('html-active');

            jQuery('.CodeMirror').show();
            jQuery('#content_parent, #content').hide();

            // resize codemirror 
            wp_settings = bootstrap_object.URLToArray(jQuery.cookie("wp-settings-"+bootstrap_config_object.user_id));
            if(wp_settings){                    
                jQuery('.CodeMirror').css('height', parseInt(wp_settings['ed_size'])+30+'px');
            }
            tinyMCE.execCommand('mceRemoveControl', false, 'content');

            if(bootstrap_config_object.codemirror_status==1){
                bootstrap_object.replase_shortcode_add_method('syntax');                    
            }
            break;
    }
    // set active tab        
    jQuery('#editor-active-tab').val(do_active);

機能:

WP エディターには、WP の従来のビジュアル エディターとテキスト エディターである 3 つの編集タブがあります。次に、Code Mirror を使用して構文 HTML を表示するようにエディターを変換する「Syntax」という名前の新しいものを追加します。使用やショートコードの追加などに関しては、一貫性と安定性が必要です。

4

2 に答える 2