Enqueingum Skripte und Stile
Dies ist jedoch nicht die empfohlene Möglichkeit für das Hinzufügen von Skripten, und Caching -Plugins optimieren und zwischenstrahlen Ihre Assets nicht, um die Leistung der Website zu erhöhen. Wir müssen den Hook admin_enqueue_scripts verwenden.
// ... <script type="text/javascript"> // some JS code </script> <style type="text/css"> // some CSS code </style> //... <script type="text/javascript" src="<?= plugins_url('assets/js/main.js') ?>"></script>
Der erste Parameter für die Methode WP_ENQUEUE_Script ist der Skript -Handler -Name. Wir sollten den Handler immer Präfix, um Konflikte zu vermeiden und sicherzustellen, dass unser Skript immer geladen wird.
add_action( 'admin_enqueue_scripts', function($hook) { $pluginPrefix = "my-prefix"; wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] ); } );
Die aktuelle Lösung ist nicht perfekt und unser Skript ist auf jeder Back -End -Seite enthalten. Wir können die an die Rückruffunktion übergebene $ Hook -Variable verwenden, um eine bestimmte Seite zu testen.
Jetzt wird unser Skript nur in die Einstellungen und neue Postseiten enthalten sein. Wir können weiter gehen, um nur unsere Stile aufzunehmen, wenn der Benutzer eine neue Seite erstellt.
add_action( 'admin_enqueue_scripts', function($hook) { if ( !in_array($hook, array("options-general.php", "post-new.php")) ) return; $pluginPrefix = "my-prefix"; wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] ); } );
unnötige Skripte entfernen
add_action( 'admin_enqueue_scripts', function($hook) { if ( $hook == "post-new.php" && isset($_GET['post_type']) && $_GET['post_type'] == "page" ) { $pluginPrefix = "my-prefix"; wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] ); } } );
// ... <script type="text/javascript"> // some JS code </script> <style type="text/css"> // some CSS code </style> //... <script type="text/javascript" src="<?= plugins_url('assets/js/main.js') ?>"></script>
Die meisten Plugins und Themen bieten eine Reihe von Shortcodes, um mit der Website zu interagieren. Manchmal müssen sie Skripte in die Seite injizieren. Leider können wir nicht wie bisher für das Back -End auf Front -End -Seiten testen.
Eine einfache Möglichkeit, dies zu erreichen, besteht darin, einen Rückruf auf dem Filter zu registrieren und zu testen, ob es Ihren Shortcode enthält. Wenn es zurückgibt, können Sie Ihre Skripte einsetzen, sonst nichts tun.
add_action( 'admin_enqueue_scripts', function($hook) { $pluginPrefix = "my-prefix"; wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] ); } );
Der obige Code funktioniert hervorragend und enthält nur unsere Skripte für Beiträge, die unseren Shortcode enthalten. Diese Lösung hat jedoch einige ernsthafte Leistungsprobleme auf Websites mit hoher Last. Wir werden eine ausgefeiltere Lösung für dieses Problem erstellen.
Wenn Sie den Komponisten noch nicht verwenden, um Ihre Klassen zu laden, empfehle ich Ihnen, dies zu tun. Unsere Plugin Composer.json -Datei würde wie Folgendes aussehen:
add_action( 'admin_enqueue_scripts', function($hook) { if ( !in_array($hook, array("options-general.php", "post-new.php")) ) return; $pluginPrefix = "my-prefix"; wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] ); } );
Die SRC/Shortcodes/HelloshortCode.php -Klasse enthält unsere Shortcode -Definition.
add_action( 'admin_enqueue_scripts', function($hook) { if ( $hook == "post-new.php" && isset($_GET['post_type']) && $_GET['post_type'] == "page" ) { $pluginPrefix = "my-prefix"; wp_enqueue_script( "{$pluginPrefix}main-js", plugins_url('assets/js/main.js'), ['jquery'] ); } } );
Die Run -Methode gibt das HTML -Markup für unseren Shortcode zurück und setzt das geladene statische Attribut auf True, wenn der Shortcode verwendet wird.
Die EnqueueScript -Methode wird unsere Stile unterliegen, wenn das Plugin geladen wird. Der verbleibende Teil registriert unseren Shortcode, um innerhalb des Post -Inhalts erkannt zu werden.
add_action( 'admin_enqueue_scripts', function($hook) { $unautorized_styles = [ 'script1', 'another-script' ]; foreach ( $unautorized_styles as $handle ) { wp_deregister_style( $handle ); } // enqueue my scripts } );
Sicherlich können wir es vermeiden, diesen Code in die Haupt -Plugin -Datei zu legen, aber wir werden die Dinge einfach und lesbar halten.
Die Variable $ mortcodes enthält eine Liste der verfügbaren Shortcodes. Die erste Schleife registriert unseren Shortcode und macht die Run -Methode zum Handler. Als nächstes verwenden wir den WP_FOOLER -Hook, um unsere Shortcode -Skripte zu enqueue, bevor wir das Body -Tag schließen.
Sie können jetzt eine neue Seite erstellen, die unseren Shortcode enthält, und überprüfen, ob unser Skript ordnungsgemäß geladen ist.
Dieser kurze Artikel war eine Zusammenfassung, wie Sie Ihre Plugin- und Themenskripte aufnehmen können, und der beste Weg, um sie zu vermeiden, sie auf jeder Seite auf Ihrer Website zu laden. Wenn Sie Fragen oder Kommentare haben, posten Sie sie unten und ich werde mein Bestes geben, um sie zu beantworten!
Das obige ist der detaillierte Inhalt vonSkripte und Stile in WordPress aufnehmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!