我有一个插件,它需要小部件的样式表。我试图在创建小部件时注册样式表,但是样式表没有排队,样式被忽略。我使用的代码如下所示,注释行展示了我尝试过的其他一些选项:
组织者。php
class Organiser extends WP_Widget {
...
public function widget( $args, $instance ) {
add_action( \'wp_enqueue_scripts\', array(\'Organiser\', \'register_plugin_styles\') );
include(dirname(__FILE__)."/organiserWidget.php");
}
function register_plugin_styles() {
wp_register_style( \'organiserStyle\', plugins_url( \'organiser/css/organiserStyle.css\' ) );
wp_enqueue_style( \'organiserStyle\' );
// wp_register_style( \'organiserStyle\', plugin_dir_url( __FILE__ ) . \'css/organiserStyle.css\' );
// wp_enqueue_style( \'organiserStyle\', plugin_dir_url( __FILE__ ) . \'css/organiserStyle.css\');
}
....
}
organiserWidget。php
<div id="organiser">
</div>
css/组织者风格。css
@import "mobile-layout.css";
css/移动布局。css
@media screen and (max-width: 420px) {
div#organiser {
width: 100%;
height: 240px;
}
}
据我所知,这是按照文档的建议进行的,到目前为止,我还没有找到任何迹象表明我做错了什么。
SO网友:Andy Macaulay-Brook
我还没有机会对此进行测试,但我认为您在尝试附加register_plugin_styles
作用
而不是使用类名Organiser
您需要对对象实例的引用。请尝试以下操作:
add_action( \'wp_enqueue_scripts\', array( $this, \'register_plugin_styles\') );
此外,通过在小部件中调用此函数,您只在WP输出排队的样式表后才将样式排队。
WP为我们提供了一个功能is_active_widget
检查此处是否有用。将您的排队从小部件中取出,并将其附加到另一个挂钩上,如init
. 在挂钩函数中使用如下条件:
if ( is_active_widget( \'your_widget_function_name\' ) ) {
add_action( \'wp_enqueue_scripts\', \'register_plugin_styles\' );
}
现在,由于我看不到你的课程的全部细节,我不能建议你如何在那里成功地使用它,也不能建议用什么来代替
your_widget_function_name
.