Как заставить wp_enqueue_style отображать CSS в самом низу тега head, чтобы переопределить все правила CSS? - PullRequest
7 голосов
/ 18 ноября 2010

В настоящее время я изучаю, как создавать шаблоны администрирования Wordpress с помощью плагинов, и согласно Wordpress Wiki вы можете использовать такие хуки, как admin_head , wp_admin_css и / или login_head , чтобы вручную отобразить HTML-тег вашей ссылки:

echo "<link rel="stylesheet" type="text/css" href="' . get_option('siteurl') . '/wp-content/plugins/blue-steel/login.css" />'."\n";

Примером, очевидно, является A Bad Thing из-за того, как тег ссылки жестко закодирован в логике php.

В идеале нужно использовать wp_enqueue_style () для вставки CSS. Тем не менее, он имеет свою собственную идею КОГДА CSS вставляется и реагирует только на те хуки, которые ему нравятся. Например, стиль wp_enqueue плохо реагирует внутри admin_head . Пока что я могу использовать его только внутри wp_print_styles и init , но, опять же, вы не можете отобразить CSS после того, как все стандартные CSS загружены:

<link rel='stylesheet' href='http://localhost/wordpress/wp-admin/load-styles.php?c=0&amp;dir=ltr&amp;load=plugin-install,global,wp-admin&amp;ver=9e478aac7934ae559830ecb557b6511d' type='text/css' media='all' />
<link rel='stylesheet' id='pinq-admin-css'  href='http://localhost/wordpress/wp-content/themes/ardee/css/pinq-admin.css?ver=3.0.1' type='text/css' media='all' />
<link rel='stylesheet' id='thickbox-css'  href='http://localhost/wordpress/wp-includes/js/thickbox/thickbox.css?ver=20090514' type='text/css' media='all' />
<link rel='stylesheet' id='colors-css'  href='http://localhost/wordpress/wp-admin/css/colors-fresh.css?ver=20100610' type='text/css' media='all' />

Я просто хочу, чтобы pinq-admin-css отображался в нижней части тега head (желательно непосредственно перед закрывающей головкой), чтобы он мог переопределять весь CSS-файл, связанный с Wordpress, который был загружен .

Есть мысли по этому поводу?

Ответы [ 2 ]

7 голосов
/ 21 ноября 2010

Эй. Есть аргумент под названием $deps для wp_enqueue_style, вы должны попробовать. Вы могли бы упомянуть, что ваша таблица стилей зависит от всего остального, поэтому она находится ниже других. Кроме этого, вы также можете продолжить с !important. Больше информации о зависимостях: http://codex.wordpress.org/Function_Reference/wp_enqueue_style

0 голосов
/ 20 ноября 2015

Я знаю, что это древний, но вот некоторый реальный код, вырезанный и вставленный с моего сайта.Это находится в файле functions.php моей дочерней темы:

 add_action('init', 'add_custom_styles', 99);
 function add_custom_styles() {
     wp_enqueue_style(
         'custom-styles',
         get_stylesheet_directory_uri() .'/custom.css',
         array('storefront-style', 'wc-bundle-style','storefront-child-style')
    );
 }

'custom-styles' - это просто файл с именем "custom.css" в каталоге дочерней темы, который содержит все мои пользовательские стили, которые я хочузагружаться последними.

Кроме того, чтобы найти дескрипторы таблиц стилей, которые вы хотите расположить над таблицей стилей custom.css, используйте описанную здесь технику:

http://crunchify.com/how-to-print-all-loaded-java-scripts-and-css-stylesheets-handle-for-your-wordpress-blog/

...