Enqueueing TinyMCE

Ich habe beschlossen, dupliziertes JavaScript aus mehreren benutzerdefinierten Post-Typ-Dateien in eine “admin.min.js” -Datei für die Verwendung in allen Admin-Seiten zu ziehen. Bisher habe ich das Skript geladen. Dies ist in meiner scripts.php (Ich verwende Roots-Thema)

// Add the admin css function custom_admin_style(){ wp_register_style('admin_css', get_template_directory_uri() . '/assets/css/admin.min.css'); wp_register_script('admin_js', get_template_directory_uri() . '/assets/js/admin.min.js'); wp_enqueue_style('admin_css'); wp_enqueue_script('admin_js'); } add_action('admin_enqueue_scripts', 'custom_admin_style'); 

Die Skripte basieren jedoch auf dem TinyMCE JS-Plugin, das mit WordPress ausgeliefert wird. Daher nehme ich an, dass dieses Skript vor dem TinyMCE JS-Plugin aufgerufen wird. Was ist der richtige Weg, um das TinyMCE-Plugin davor oder mein Skript danach zu laden?

Solutions Collecting From Web of "Enqueueing TinyMCE"

Sie müssen den dritten Parameter von wp_register_script() , der der Abhängigkeitsparameter $deps .

In Ihrem Code ist dies derzeit auf “false” gesetzt, was eigentlich weggelassen werden sollte oder auf ein leeres Array, array() wenn es nicht benötigt wird. In Ihrem Fall werden Sie dies mit dem Handle des Skripts festlegen, von dem Sie es abhängig machen möchten. Sie können hier mehr als ein Handle hinzufügen, wenn Sie mehr als ein Skript benötigen

Das Handle für das winzige MCE-Skript, das mit WordPress ausgeliefert wird, ist tiny_mce . Sie können Folgendes ausprobieren:

 wp_register_script('admin_js', get_template_directory_uri() . '/assets/js/admin.min.js', array( 'tiny_mce' ) ); 

Dadurch wird sichergestellt, dass Ihr Skript nicht geladen wird, bevor das zine mce-Skript geladen wird. Nur eine Anmerkung hier, stellen Sie sicher, dass Ihre Handles eindeutig benannt ist, da dies Probleme verursachen wird, wenn ein anderes Skript mit demselben Handle geladen wird

BEARBEITEN

Dieses neue Problem, mit dem Sie jetzt konfrontiert sind, ist, dass das winzige MCE-Skript nicht auf jeder Seite geladen wird, so sollte es sein. Skripte und Stile sollten nicht geladen werden, wenn sie nicht auf einer Seite benötigt werden.

Dies ist das große Problem beim Kombinieren von Skripten, und Sie werden höchstwahrscheinlich jetzt Skripte und Stile laden, die auf einigen Seiten nicht benötigt werden. Das Festlegen einer Abhängigkeit funktioniert auch nicht, da das benutzerdefinierte Skript auf Seiten, auf denen das winzige MCE-Skript nicht geladen wird, nicht geladen wird.

Die einzige andere Möglichkeit, dies zu erreichen, besteht darin, die Abhängigkeit zu entfernen und dann die Priorität für Ihre Aktion zu verwenden, etwa so

 function custom_admin_style(){ wp_register_style('admin_css', get_template_directory_uri() . '/assets/css/admin.min.css'); wp_register_script('admin_js', get_template_directory_uri() . '/assets/js/admin.min.js'); wp_enqueue_style('admin_css'); wp_enqueue_script('admin_js'); } add_action( 'admin_enqueue_scripts', 'custom_admin_style', PHP_INT_MAX );