我正在制作一个导航插件,为你的wordpress导航添加动画。
我在Wordpress Codex中读到我需要使用wp\\u enqueue\\u style()。
首先,如何将此代码用于多个css文件?在我的主插件文件中。
现在根据this 问题,我会添加如下样式表:
function add_my_stylesheet()
{
wp_enqueue_style( \'myCSS\', plugins_url( \'/css/myCSS.css\', __FILE__ ) );
}
add_action(\'admin_print_styles\', \'add_my_stylesheet\');
由于我的插件需要添加多个样式表,我应该使用这两个代码中的哪一个?
function add_my_stylesheet()
{
wp_enqueue_style( \'myCSS\', plugins_url( \'/css/myCSS.css\', __FILE__ ) );
}
add_action(\'admin_print_styles\', \'add_my_stylesheet\');
function add_my_stylesheet1()
{
wp_enqueue_style( \'myCSS1\', plugins_url( \'/css/myCSS1.css\', __FILE__ ) );
}
add_action(\'admin_print_styles\', \'add_my_stylesheet1\');
或
function add_my_stylesheet1()
{
wp_enqueue_style( \'myCSS1\', plugins_url( \'/css/myCSS.css\', __FILE__ ) );
wp_enqueue_style( \'myCSS1\', plugins_url( \'/css/myCSS1.css\', __FILE__ ) );
}
add_action(\'admin_print_styles\', \'add_my_stylesheet1\');
现在我知道在哪里添加此代码。但是如何调用我想要使用的样式表呢?
另外,为了明确我的插件会做什么:主插件文件只会加载所需的样式表。选项页面允许用户选择所需的样式表。
例如,在php格式中,我将使用以下内容:
<link href="nav-<?php echo $name; ?>.css">
$名称应该是从选项页中选择的名称,但是如何调用所需的样式表呢?
我希望我的问题足够清楚。
最合适的回答,由SO网友:bosco 整理而成
要回答第一个问题,可以使用第二种方式,即。
function add_my_stylesheet()
{
wp_enqueue_style( \'myCSS\', plugins_url( \'/css/myCSS.css\', __FILE__ ) );
wp_enqueue_style( \'myCSS1\', plugins_url( \'/css/myCSS1.css\', __FILE__ ) );
}
add_action(\'admin_print_styles\', \'add_my_stylesheet\');
什么
add_action()
function 告诉WordPress“什么时候
the admin_print_styles
action 发生,运行此
add_my_stylesheet()
作用“令人困惑的是,
the practice of using the admin_print_styles
and admin_enqueue_styles
actions to enqueue stylesheets is incorrect - 尽管有违直觉,但您应该使用
admin_enqueue_scripts
相反
呼叫wp_enqueue_style()
然后将指定的样式表添加到将要加载的样式表列表中(如果您指定了dependencies参数,那么WordPress还将负责确保您的样式表以正确的顺序加载)。您不需要像建议的那样“调用”已排队的样式表-如果已排队,则will 以HTML格式打印出来<link ...>
中的元素<head></head>
节的方式与WordPress加载自己的样式表的方式相同。
为了选择要加载的样式表,只需将逻辑添加到add_my_stylesheet()
作用如果不希望使用样式表,则不将其排队,即:
function admincolorplugin_enqueue_styles()
{
// Get the user\'s stylesheet choice from the options, default to "white"
$stylesheet = get_option( \'admincolorplugin_stylesheet\', \'white\' );
// Conditionally load the appropriate stylesheet
if( $stylesheet == \'black\' ) {
wp_enqueue_style( \'admincolorplugin-black\', plugins_url( \'/css/black.css\', __FILE__ ) );
}
else {
wp_enqueue_style( \'admincolorplugin-white\', plugins_url( \'/css/white.css\', __FILE__ ) );
}
}
add_action(\'admin_enqueue_scripts\', \'admincolorplugin_enqueue_styles\' );
SO网友:ScottMcGready
例如,使用if检查它是否符合您的标准
特定页面/帖子(id)与管理选项相关的所有页面/帖子这样,当选中所需的管理选项时,它只会在所需页面/上拉取所需的CSS。
function add_my_stylesheet1()
{
if(is_page(41)){
wp_enqueue_style( \'myCSS1\', plugins_url( \'/css/myCSS.css\', __FILE__ ) );
}else{
wp_enqueue_style( \'myCSS1\', plugins_url( \'/css/myCSS1.css\', __FILE__ ) );
}
}
或:
function add_my_stylesheet1()
{
$adminopt = get_option( $option, $default );
if($adminopt == "Normal CSS"){
wp_enqueue_style( \'myCSS\', plugins_url( \'/css/myCSS.css\', __FILE__ ) );
}else{
wp_enqueue_style( \'myCSS1\', plugins_url( \'/css/myCSS1.css\', __FILE__ ) );
}
}