Me gustaría mantener los estilos javascript y css utilizados por mi widget dentro de sus propios archivos (y no agregarlos al tema).
Pero parece que no puedo obtener wordpress para agregarlos cuando el widget se usa realmente en una barra lateral.
He intentado esto:
dentro de la declaración de clase, agregué 2 funciones
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);
}
y dentro de la función widget ():
function widget($args, $instance) {
add_action( 'wp_print_scripts', 'addFrontendJavascript' );
add_action( 'wp_print_styles', 'addFrontendCss' );
}
Pero eso no hace nada ...
widgets
wp-enqueue-script
wp-enqueue-style
pixeline
fuente
fuente
Respuestas:
wp_print_scripts
y loswp_print_styles
ganchos se activan mucho antes de que su widget funcione, por lo que no funciona.Una solución para eso sería incluir los scripts en el pie de página usando
wp_print_footer_scripts
hook, eche un vistazo a la respuesta de Jan a una pregunta similarO una solución mucho más agradable eche un vistazo a la respuesta de Sorich a otra pregunta similar
fuente
La mejor solución es registrar sus activos primero y luego poner en cola el CSS y JS dentro de la
widget()
función de su WP_Widget (directamente en cola, no agregando nuevos ganchos).He probado esta solución y funciona en la versión actual de WordPress (4.5.3): tanto el JS como el CSS se agregan en el pie de página.
fuente