I’m looking for the best way to inject CSS into WordPress’ Admin CP.
Currently, I’m using the admin_head
action hook and in this hook, I’m using dirname( __FILE__ )
to retrieve the directory for the stylesheets. However, dirname()
does retrieve the server’s path. Is this the recommended way or is there some sort of WordPress function to get a URI path rather than a directory path?
public function admin_head()
{
// Let's include the Control Panel CSS
$url = dirname( __FILE__ ) . '/css/cpanel.css';
$ie = dirname( __FILE__ ) . '/css/cpanel-ie.css';
// Inject our cPanel styelsheet and add a conditionaly for Internet Explorer
// (fixes bugs on my home browser)
$head = <<<HEAD
<link rel="stylesheet" href="{$url}" type="text/css" media="screen" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="{$ie}" media="screen" />
<![endif]-->
HEAD;
echo $head;
foreach( self::$classes as $class => $obj )
{
if ( method_exists( $obj, 'admin_head' ) )
{
$obj->admin_head();
}
}
}
-Zack
See
plugins_url()
. It’s perfect and engineered to link to files in plugin folders.PS also
wp_enqueue_style()
might make sense in the mix.There’s another way to add conditional comments, using WP’s API:
`
I originally didn’t think that this was possible, but then I did some digging and came up with the following solution which works for me on WordPress 3.1. The tricky part was getting the conditional tags for IE in there. There’s a filter for it!
Best wishes,
-Mike