Ich möchte die von meinem Widget verwendeten Javascript- und CSS-Stile in ihren eigenen Dateien behalten (und sie nicht zum Thema hinzufügen).
Aber ich kann nicht scheinen, WordPress zu bekommen, um sie hinzuzufügen, wenn das Widget tatsächlich in einer Seitenleiste verwendet wird.
Ich habe es versucht:
Innerhalb der Klassendeklaration habe ich 2 Funktionen hinzugefügt
class EssentielleRubriquesPosts extends WP_Widget {
function addFrontendCss(){
wp_enqueue_style('erw-frontend-css', ESSENTIELLE_RUBRIQUE_WIDGET_PLUGIN_PATH . 'css/EssentielleRubriqueWidget-frontend.css');
}
function addFrontendJavascript(){
wp_register_script('jq-hoverintent', PLUGIN_PATH . 'js/jquery.hoverintent.js', array('jquery'), '1.0',true);
wp_enqueue_script('jq-hoverintent');
wp_enqueue_script('jq-tools', PLUGIN_PATH . 'js/jquery.tools.js', array('jquery'),'1.0',true);
wp_enqueue_script('erw-frontend-js', PLUGIN_PATH . 'js/widget-frontend.js', array('jquery', 'jq-hoverintent', 'jq-tools'),'1.0',true);
}
und innerhalb der widget () Funktion:
function widget($args, $instance) {
add_action( 'wp_print_scripts', 'addFrontendJavascript' );
add_action( 'wp_print_styles', 'addFrontendCss' );
}
Aber das macht nichts ...
widgets
wp-enqueue-script
wp-enqueue-style
Pixeline
quelle
quelle
Antworten:
wp_print_scripts
undwp_print_styles
Hooks werden weit vor Ihrer Widget-Funktion ausgelöst, so dass es nicht funktioniert.Eine Lösung dafür wäre, die Skripte mit
wp_print_footer_scripts
hook in die Fußzeile einzubeziehen und sich Jan's Antwort auf eine ähnliche Frage anzusehenOder eine viel schönere Lösung, werfen Sie einen Blick auf Sorichs Antwort auf eine andere ähnliche Frage
quelle
Die beste Lösung ist, zuerst Ihre Assets zu registrieren und dann CSS und JS in der
widget()
Funktion Ihres WP_Widget in eine Warteschlange zu stellen (direkt in eine Warteschlange stellen, nicht durch Hinzufügen neuer Hooks).Ich habe diese Lösung getestet und sie funktioniert in der aktuellen WordPress-Version (4.5.3) - sowohl JS als auch CSS werden in der Fußzeile der Seite hinzugefügt.
quelle