在自定义主题选项的管理屏幕上包括CSS和JS

时间:2010-09-22 作者:abrudtkuhl

我正在创建一个带有主题选项页的自定义主题。

我想设置选项页的样式,但不想包含内联样式。有没有办法从say中包含外部样式表

TEMPLATEPATH . \'/css/admin.css\'
我还发现了这段代码,它似乎很有效-link

function admin_register_head() {
 $siteurl = get_option(\'siteurl\');
 $url = $siteurl . \'/wp-content/plugins/\' . basename(dirname(__FILE__)) . \'/yourstyle.css\';
 echo "<link rel=\'stylesheet\' type=\'text/css\' href=\'$url\' />\\n";
}
add_action(\'admin_head\', \'admin_register_head\');
最好的方法是什么?

4 个回复
最合适的回答,由SO网友:davemac 整理而成

如果你create an admin theme plugin 从Codex的步骤中,您会注意到它说不要按照上面的方法插入样式表,尽管上面的方法可以工作。

如果您将以下内容放在管理主题文件中,它将起到相同的作用,但使用wp_enqueue_styles 方法:

function add_admin_theme_styles() {
    wp_register_style($handle = \'mytheme-theme-admin-styles\', $src = plugins_url(\'wp-admin.css\', __FILE__), $deps = array(), $ver = \'1.0.0\', $media = \'all\');
    wp_enqueue_style(\'mytheme-theme-admin-styles\');}
    add_action(\'admin_print_styles\', \'add_admin_theme_styles\');

SO网友:t31os

为管理区域注册页面时,使用add_submenu_page 或任何其他add_{TYPE}_page 函数第四个参数接受唯一标识符,该标识符指定注册页面将使用的挂钩。。

如果我要注册一个选项,例如:

add_options_page( \'Example Plugin Options\', \'Example Plugin\', \'manage_options\', \'example-plugin-identifier\', \'example_plugin_options\' );
然后该页面可以使用各种挂钩,具体来说,这里只是现在注册的页面的一些可能操作。

// load-{HANDLE}
add_action( \'load-example-plugin-identifier\', \'example_plugin_callback\' );
// admin_head-{HANDLE}
add_action( \'admin_head-example-plugin-identifier\', \'example_plugin_callback\' );
// admin_print_scripts-{HANDLE}
add_action( \'admin_print_scripts-example-plugin-identifier\', \'example_plugin_callback\' );
// admin_print_styles-{HANDLE}
add_action( \'admin_print_styles-example-plugin-identifier\', \'example_plugin_callback\' );

function example_plugin_callback() {

    // Run your code here

}
还有admin_enqueue_scripts 钩子,它在传递给回调函数的字符串/变量中提供当前句柄的名称。

add_action( \'admin_enqueue_scripts\', \'example_plugin_callback\' );

function example_plugin_callback( $handle ) {

    // If the handle is not the page registered earlier, return
    if( \'example-plugin-identifier\' =! $handle )
        return;

    // Run your code here

}
通常不需要使用admin_head,admin_print_scriptsadmin_print_styles 除非您有特定的目标要求every 或在回调中执行条件逻辑,以定位特定的注册页。

希望这有帮助。。

SO网友:Rarst

WP为脚本和样式提供队列。它允许对URL进行版本设置、自动加载依赖项等。

看见wp enqueue style() 在Codex中,了解如何正确注册样式并仅在需要的地方加载(在自定义页面,而不是在所有管理区域)。

SO网友:abrudtkuhl

是的,我在回答我自己的问题。。。但我确实做到了。

将此操作添加到主题的功能中。php文件

function admin_register_head() {
    $url = get_bloginfo(\'template_directory\') . \'/css/admin.css\';
    echo "<link rel=\'stylesheet\' type=\'text/css\' href=\'$url\' />\\n";
}
add_action(\'admin_head\', \'admin_register_head\');

结束

相关推荐

WP-ADMIN似乎正在重定向

我的w-admin登录有一个奇怪的问题。这是从我升级到3.0以后才开始的,当我转到wp admin时,登录表单显示正常,但当我输入用户名并通过时,每次都会再次显示登录表单。使用密码恢复功能会导致电子邮件未找到错误。我知道用户名密码和电子邮件是正确的,b/c我可以访问mysql数据库,我可以看到值(至少用户名和电子邮件) 有人知道会出什么问题吗