Intereting Posts
создание пользовательских сообщений на главной странице – при условии, что поиск выполнен Виджет боковой панели YouTube – недоступен сервис YouTube Пустая страница при сохранении изменений в сообщении SFTP определяет в wp-config.php Последнее сообщение Styled Different Than other posts Регистрация пользователя на двух сайтах в одном и том же мультисайте Перечислите только детей первого уровня с конкретным сроком таксономии Как предоставить несколько культур одного и того же изображения в теме? Переключение темы и обратно приведет к сбросу настроек предыдущей темы? Атрибуты Woocommerce приводят неверные данные Создание суб-комментариев с WP-CLI Записи запроса по имени таксономии Настройка разбиения на страницы для изображений, прикрепленных к сообщению Страница категории сортировки с настраиваемым полем как обновить div на части шаблона?

Лучший способ вставить css в admin_head в плагинах?

Я ищу лучший способ вставить CSS в WordPress Admin CP.

В настоящее время я использую admin_head и в этом случае я использую dirname( __FILE__ ) для извлечения каталога для таблиц стилей. Однако dirname() восстанавливает путь к серверу. Является ли это рекомендуемым способом или есть какая-то функция WordPress, чтобы получить путь к URI, а не путь к каталогу?

  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

Solutions Collecting From Web of "Лучший способ вставить css в admin_head в плагинах?"

См. plugins_url() . Он идеально подходит для создания ссылок на файлы в папках плагинов.

PS также wp_enqueue_style() может иметь смысл в миксе.

Есть еще один способ добавить условные комментарии, используя API WP:

 wp_enqueue_style( 'my-ie-style', get_template_directory_uri() . '/css/cpanel-ie.css' ); global $wp_styles; $wp_styles->add_data( 'my-ie-style', 'conditional', 'IE' ); в wp_enqueue_style( 'my-ie-style', get_template_directory_uri() . '/css/cpanel-ie.css' ); global $wp_styles; $wp_styles->add_data( 'my-ie-style', 'conditional', 'IE' ); 

`

Я изначально не думал, что это возможно, но потом я сделал рытье и придумал следующее решение, которое работает для меня в WordPress 3.1. Трудная часть заключалась в получении условных тегов для IE. Для этого есть фильтр!

 <?php /* Plugin Name: My Plugin */ class My_Plugin { function My_Plugin() { add_action( 'wp_print_styles', array( &$this, 'css_public' ) ); add_filter( 'style_loader_tag', array( &$this, 'ie_conditional_comments' ), 10, 2 ); } function css_public() { wp_enqueue_style( 'my-plugin', plugins_url( '/my.css', __FILE__ ), array(), '1.0' ); wp_enqueue_style( 'my-plugin-ie', plugins_url( '/my-ie.css', __FILE__ ), array( 'my-plugin' ), '1.0' ); } function ie_conditional_comments( $tag, $handle ) { if ( 'my-plugin-ie' == $handle ) { $tag = '<!--[if IE]>' . $tag . '<![endif]-->'; } return $tag; } } $my_plugin = new My_Plugin(); 

С наилучшими пожеланиями, -Mike