如何从定制小部件将样式表加载到wp_head中?

时间:2011-10-21 作者:N2Mystic

下面的代码是与我的主题相关的小部件的一部分。我试图通过向wp\\u head发出add\\u操作调用来包含小部件所需的样式表。但是,该函数在此上下文中从不激发。

我错过了什么?

   function widget( $args, $instance ) {
        if(!get_option(\'my_slider\')) return;
        add_action(\'wp_head\', \'my_sliderCSS\');
        extract($args);
        $title = apply_filters( \'widget_title\', empty($instance[\'title\']) ? \'\' : $instance[\'title\'], $instance );
        $text = apply_filters( \'widget_text\', $instance[\'text\'], $instance );
        $hide_title = isset( $instance[\'hide_title\'] ) ? $instance[\'hide_title\'] : false;
        echo $before_widget;
        if ( $title && !$hide_title )echo $before_title . $title . $after_title;
        if ( $text )?><div id="slider"><dl><?php echo $instance[\'filter\'] ? wpautop($text) : $text; ?></dl></div>
        <?php echo $after_widget;
    }

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

有多种方法(including this one), 但您可以考虑,因为您谈论的是样式表而不是脚本,所以只需将其从插件中排队,而不管小部件是否处于活动状态。(哪一个更糟:小部件特定CSS的几个字节,还是确定小部件是否处于活动状态的服务器开销?)

只需将以下内容添加到插件文件中(小部件类定义的外部):

<?php
function plugin-name_print_stylesheet() {
    ?>
    <style type="text/css">
    /* CSS definitions go here */
    </style>
    <?php
}
add_action( \'wp_print_styles\', \'plugin-name_print_stylesheet\' );
?>
或者,如果你有。带有小部件样式表的css文件:

<?php
function plugin-name_enqueue_stylesheet() {
    wp_enqueue_style( \'plugin-name-stylesheet\', plugins_dir( \'stylesheet.css\', __FILE__ ) );
}
add_action( \'wp_enqueue_scripts\', \'plugin-name_enqueue_stylesheet\' );
?>
注意:不要使用通用术语,如my_slider 作为自定义函数前缀。您应该使用plugin-slug 相反,作为插件所有自定义函数的前缀。

结束

相关推荐

Why use widgets?

我对使用WordPress很陌生,我想知道使用小部件的好处是什么?看here 这听起来像是为那些不是程序员的人准备的,他们想在他们的网站上添加插件。对吗?或者小部件是否在某种程度上使站点更加健壮?