Pregunta sobre Arreglando WordPress de Wordpress:

4.9.8 y TinyMCE no pudo cargar => plugin.min.js

Un usuario preguntó 👇

Hola a todos, después de actualizar a 4.9.8:

No se pudo cargar el plugin: juw_mce_button de la URL http://beta.trauwerk.com/wp-includes/js/tinymce/plugins/juw_mce_button/plugin.min.js

http://beta.trauwerk.com/wp-includes/js/tinymce/plugins/juw_mce_button/plugin.min.js?wp-mce-4800-20180716-tadv-4.7.11
http://beta.trauwerk.com/wp-includes/js/tinymce/plugins/juw_mce_dropbuttonHeadlines/plugin.min.js?wp-mce-4800-20180716-tadv-4.7.11
http://beta.trauwerk.com/wp-includes/js/tinymce/plugins/juw_mce_dropbuttonHeadUnderlines/plugin.min.js?wp-mce-4800-20180716-tadv-4.7.11

¿Alguien sabe por qué TinyMCE quiere cargar el script desde los archivos principales?

El código:


// Found here => https://wisdmlabs.com/blog/add-buttons-menu-options-tinymce-wordpress-post-editor/
// hooks your functions into the correct filters
function juw_add_mce_button() {
            // check user permissions
            if ( !current_user_can( 'edit_posts' ) &&  !current_user_can( 'edit_pages' ) ) {
                       return;
               }
           // check if WYSIWYG is enabled
           if ( 'true' == get_user_option( 'rich_editing' ) ) {
               add_filter( 'mce_external_plugins', 'juw_add_tinymce_plugin' );
               add_filter( 'mce_buttons', 'juw_register_mce_button' );
               }
}
add_action('admin_head', 'juw_add_mce_button');

// register new button in the editor
function juw_register_mce_button( $buttons ) {
            array_push( $buttons, 'juw_mce_button, juw_mce_dropbuttonHeadlines, juw_mce_dropbuttonHeadUnderlines' );
            return $buttons;
}

// declare a script for the new button
// the script will insert the shortcode on the click event
function juw_add_tinymce_plugin( $plugin_array ) {
          $plugin_array['juw_mce_button, juw_mce_dropbuttonHeadlines, juw_mce_dropbuttonHeadUnderlines'] = get_stylesheet_directory_uri() .'/js/juw-mce-button.js';
          return $plugin_array;
}

(@bcworkz)

Hace 2 años, 7 meses

Juw_mce_button no es un plugin principal de tinyMCE, solo se ha agregado a su sitio. Es posible que la actualización haya eliminado la carpeta del plugin porque no forma parte del código central. Utilice FTP para averiguar si los archivos fallidos aún existen. Los archivos de plugins no deben mantenerse dentro de la estructura principal solo por esta razón. Pertenecen a un plugin WP normal, incluso si es un plugin pequeño. Los archivos JS se pueden cargar desde una carpeta de plugins de WP directamente desde ubicaciones centrales, y no tiene que preocuparse por la pérdida de archivos en una actualización.

Lanzador de hilos

(@ paze87)

Hace 2 años, 7 meses

¡Hola sí! Tienes razón, nunca debería estar en los archivos principales, pero la función y los archivos están en functions.php con temas secundarios … Antes de la actualización 4.9.8, ¿todo funcionaba perfectamente? BR y gracias, Patrick

(@bcworkz)

Hace 2 años, 7 meses

Los enlaces que publica en su OP van a / wp-include / js / tinymce / plugins / (terminal de código central). / Wp-content / themes / tiene recursos de tema hijo. ¿Podría el problema ser el camino hacia los recursos contaminados de alguna manera? ¿Qué código carga estos recursos? Utilice FTP o similar para averiguar dónde residen realmente estos recursos. Coordinar con el código de carga.

Lanzador de hilos

(@ paze87)

Hace 2 años, 7 meses

Heyho, mar …

Ese es el código (en funciones secundarias.php):

$ plugin_array[‘juw_mce_button, juw_mce_dropbuttonHeadlines, juw_mce_dropbuttonHeadUnderlines’] = get_stylesheet_directory_uri (). ‘/ js / juw-mce-button.js’;

Aquí está el código completo (functions.php):


function juw_add_mce_button() {
            // check user permissions
            if ( !current_user_can( 'edit_posts' ) &&  !current_user_can( 'edit_pages' ) ) {
                       return;
               }
           // check if WYSIWYG is enabled
           if ( 'true' == get_user_option( 'rich_editing' ) ) {
               add_filter( 'mce_external_plugins', 'juw_add_tinymce_plugin' );
               add_filter( 'mce_buttons', 'juw_register_mce_button' );
               }
}
add_action('admin_head', 'juw_add_mce_button');

// register new button in the editor
function juw_register_mce_button( $buttons ) {
            array_push( $buttons, 'juw_mce_button, juw_mce_dropbuttonHeadlines, juw_mce_dropbuttonHeadUnderlines' );
            return $buttons;
}

// declare a script for the new button
// the script will insert the shortcode on the click event
function juw_add_tinymce_plugin( $plugin_array ) {
          $plugin_array['juw_mce_button, juw_mce_dropbuttonHeadlines, juw_mce_dropbuttonHeadUnderlines'] = get_stylesheet_directory_uri() .'/js/juw-mce-button.js';
          return $plugin_array;
}

El archivo está aquí:

temas -> divi_child -> js -> juw-mce-button.js

Y aquí están los js:


(function() {
       tinymce.PluginManager.add('juw_mce_button', function( editor, url ) {
           editor.addButton('juw_mce_button', {
                       text: 'Column',
                       icon: false,
                       onclick: function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<div class='intro'>" + selected_text + "</div>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
             });
       });
})();

/*TRWK HEADLINES*/
(function() {
        tinymce.PluginManager.add('juw_mce_dropbuttonHeadlines', function( editor, url ) {
           editor.addButton( 'juw_mce_dropbuttonHeadlines', {
                 text: 'Trwk Überschriften',
                 icon: false,
                 type: 'menubutton',
                 menu: [
                       {
                        text: 'Kategorie Headline (85px - 80pt)',
                        onclick:
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_catHead trwk_luxBrut'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                        },
                       {
                        text: 'Kategorie Subline (15px - 15pt )',
                        onclick: 
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_catSub'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                       },
                      {
                        text: 'Themen + Box Headline (53px - 50pt)',
                        onclick:
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_themBoxHead trwk_luxBrut'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                        },
                       {
                        text: 'Zwischenzeile (20px - 20pt)',
                        onclick: 
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_between'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                       },
                       {
                        text: 'Unterzeile (22px - 20pt)',
                        onclick: 
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_underline'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                       },
                       {
                        text: 'Bildunterschrift (16px - 17pt)',
                        onclick: 
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_imageTitle'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                       },
                       {
                        text: 'h1 (60px - 60pt)',
                        onclick: 
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<h1 class='trwk_h1 trwk_luxBrut'>" + selected_text + "</h1>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                       },
                       {
                        text: 'Headline - Slider (70px - 70pt)',
                        onclick: 
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_sliderHead trwk_luxBrut'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                       }                     
                       ]
              });
        });
})();

/*TRWK HEADUNDERLINES*/
(function() {
        tinymce.PluginManager.add('juw_mce_dropbuttonHeadUnderlines', function( editor, url ) {
           editor.addButton( 'juw_mce_dropbuttonHeadUnderlines', {
                 text: 'Trwk Unterüberschriften',
                 icon: false,
                 type: 'menubutton',
                 menu: [
                       {
                        text: 'Trwk H2 Underline 15PT',
                        onclick:
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_h2Underline15PT'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                        },
                       {
                        text: 'Trwk H2 Underline 20PT',
                        onclick: 
                           function() {
                                var selected_text = editor.selection.getContent();
                                var return_text = "<span class='trwk_h2Underline20PT'>" + selected_text + "</span>";
                                editor.execCommand("mceInsertContent", 0, return_text);
                            }
                       }
                       ]
              });
        });
})();

(@bcworkz)

Hace 2 años, 7 meses

¡Derp! Ahora lo entiendo, a veces soy un poco lento para entender completamente lo que realmente se trata de un tema. Y a veces olvido lo que hay en el OP, como el código que carga el archivo JS. Gracias por su paciencia.

El script JS fue realmente útil, me permitió probar su código y ver por mí mismo de qué está hablando realmente. Supongo que comprende que sus botones funcionan perfectamente, a pesar de este extraño mensaje sobre no cargar sus plugins desde una ubicación central.

El mensaje es que el cargador no está contento con el llamado «nombre del plugin» agregado en juw_add_tinymce_plugin (). El problema es el nombre de la matriz y la clave «juw_mce_button, juw_mce_dropbuttonHeadlines, juw_mce_dropbuttonHeadUnderlines». Si bien esto está perfectamente bien (un poco extraño, pero suave) en lo que respecta a PHP, el cargador de scripts MCE parece diferir. Debe agregar cada botón como un «plugin» separado.

          $plugin_array['juw_mce_button'] = get_stylesheet_directory_uri() .'/js/juw-mce-button.js';
          $plugin_array['juw_mce_dropbuttonHeadlines'] = get_stylesheet_directory_uri() .'/js/juw-mce-button.js';
          $plugin_array['juw_mce_dropbuttonHeadUnderlines'] = get_stylesheet_directory_uri() .'/js/juw-mce-button.js';

Probablemente esté pensando ahora «¡Pero es redundante y en vano cargar el mismo archivo tres veces!». Excesivo, sí; pero no un desperdicio. Si comprueba la herramienta de desarrollo de red de su navegador, verá que el cargador de plugins de MCE le notifica la redundancia y solo solicita el archivo una vez para las tres instancias de «plugins».

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.