如何只将一个css样式加载到WordPress管理区域?

时间:2012-03-01 作者:Kurt Bunch

我正在尝试为我的WordPress帖子区域加载CSS文件,但没有成功。我已经阅读了wp\\u enqueue\\u风格的函数并产生了下面的代码,但它没有加载。我的代码中是否缺少标记或字符。我有一个自定义的写面板,当用户发布我想用CSS文件样式的帖子时。任何帮助都会很好。

以下是我的主题functions.php 文件:

function mytheme_add_init() {
    $file_dir=get_bloginfo(\'template_directory\');
    wp_enqueue_style("functions", $file_dir."/scripts/custom.css", false, "1.0", "all");
    wp_enqueue_script("rm_script", $file_dir."/scripts/custom.js", false, "1.0");
}

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

只需将您的回拨连接到admin_print_styles, i、 e.:

add_action( \'admin_print_styles\', \'mytheme_add_init\' );
或者,您可以添加is_admin() 回调中的条件包装器,并挂钩到wp_enqueue_scripts:

function mytheme_add_init() {
    if ( is_admin() ) {
        $file_dir=get_bloginfo(\'template_directory\');
        wp_enqueue_style("functions", $file_dir."/scripts/custom.css", false, "1.0", "all");
        wp_enqueue_script("rm_script", $file_dir."/scripts/custom.js", false, "1.0");
    }
}
add_action( \'wp_enqueue_scripts\', \'mytheme_add_init\' );
但绝对的最佳方法是hook into your Theme\'s admin page, 通过admin_print_styles-appearance_page_{pagename}:

add_action( \'admin_print_styles-appearance_page_{pagename}\', \'mytheme_add_init\', 11 );
这是一个定制挂钩,专门用于外观页面,通过add_theme_page() 呼叫

SO网友:kaiser

迟来的回答:由于之前的两个回答都显示了旧的、不完整的或复杂的方式,这里有一个适用于v3的更新版本。5路以上

有什么不同

这是列表

我们要做的第一件事就是使用admin_enqueue_scripts 钩这个钩子wp_enqueue_style()的最后一个参数是目标媒体,它已经设置为all 按默认值。无需添加get_template_directory_uri() 函数检索样式表的URl。无需检查选项值template_directory 在这里get_template_directory() 检索路径并将其包装到filemtime() 调用以获取上次编辑样式表的时间。通过这种方式,我们附加一个新版本号作为查询参数,如果有新版本,则强制浏览器重新加载样式表。无需使用Ctrl+F5强制重新加载wp-admin.css, ie (甚至更糟)或配色方案。真正困难的部分是检查颜色方案,因为此文件包含管理UI中的大多数样式,并且是用户设置。我们还想添加这个依赖项admin_head-* 钩子,在哪里* 是pageslug。我们对其进行了两次挂钩,以将新帖子和编辑过的帖子考虑在内functions.php 文件

add_action( \'admin_head-post.php\', \'wpse44135AttachAdminStyle\' );
add_action( \'admin_head-post-new.php\', \'wpse44135AttachAdminStyle\' );
function wpse44135AttachAdminStyle()
{
    add_action( \'admin_enqueue_scripts\', \'wpse44135EnqueueAdminStyle\' );
}
function wpse44135EnqueueAdminStyle()
{
    $scheme = get_user_meta(
        get_current_user_id(),
        \'admin_color\',
        true
    );

    wp_enqueue_style(
        "admin_style",
        get_template_directory_uri()."/scripts/custom.css",
        array( \'wp-admin\', \'ie\', "colors-{$scheme}" ),
        filemtime( get_template_directory()."/scripts/custom.css" ),
        "all"
    );
}
备选方案如果您只想将样式添加到TinyMCE WYSIWYG编辑器中,可以使用add_editor_style() 也可以在管理区域文本编辑器中注册主题样式表。作为参数添加的路径相对于主题根。在您的functions.php 文件:

add_editor_style( \'/scripts/custom.css\' );
就这么简单。

SO网友:Chandan Kumar Thakur

这里有一个快速的方法来添加一些管理头风格。希望这有助于:

add_action(\'admin_head\', \'my_custom_fonts\');
function my_custom_fonts() {
  echo \'<style>
    body, td, textarea, input, select {
    font-family: "Lucida Grande";
    font-size: 12px;
  } 
</style>\';
}

结束

相关推荐

向WordPress插件添加自定义css?

Possible Duplicate:best way to overide plugin CSS? 我偶尔会遇到一个很棒的wordpress插件,它有自己的css样式表。我可以编辑插件文件夹中的css,它会像一个魔咒一样工作,但如果插件有任何更新,它会覆盖我应用于它的自定义css。我知道我可以在我自己的css中定位插件的类并应用!重要的到css样式的末尾。我读到这不是一个好的做法。正在添加!对于结束css风格的错误做法很重要,如果是这样,那么针对wordpress插件定制css的最佳方式是什么?Tha