Intereting Posts
Список всех сообщений в пользовательском типе сообщений с разбивкой на страницы (правильный путь) Динамическое добавление кода в шаблон Категории продуктов не отображаются в качестве опции для создания меню Какой плагин или тема WordPress используется для планирования занятий между учащимися и преподавателями и принятия платежей для таких, например, на сайте Italki? Любимый недавний виджет сообщений Не удалось сравнить даты в meta_query Сетка WooCommerce / представление списка Как получить переменные $ _GET из переписанных URL-адресов? WordPress multisite – Какова идеальная настройка для среды разработки / промежуточной обработки? Помощь в многостраничной странице архива категорий Как выполнить запрос с SQL Server для публикации на пользовательской странице зарегистрированного пользователя. Мне нужно отключить предварительное одобрение комментариев Disqus, но я не могу найти, где Многоузловая ошибка? – Восстановить настройки сети. Ограничение сеансов на один IP одновременно Попытка изменить функцию пользовательского поиска в плагине для поиска таблицы postmeta для ключевого слова, а также таблицы сообщений

различный способ достижения stylesheet_url

Я хотел бы понять разницу между:

<?php bloginfo( 'stylesheet_url' ); ?> 

а также

 <?php bloginfo('template_url'); ?>/style.css 

потому что я думаю, что второй из них более гибкий (я решил переместить файл в подкаталог, например, или если у меня больше таблиц стилей, чтобы добавить .. второй кажется более умным). Я ошибаюсь?

В частности, где хранится 'stylesheet_url' ? и как его изменить?

bloginfo('stylesheet_url') всегда возвращает таблицу стилей текущей темы. Если текущая тема является дочерней темой , например, она вернет style.css относительно корня дочерней темы, а не корня родительской темы.

bloginfo('template_url') всегда будет возвращать URL-адрес шаблона шаблона родительской темы. Поэтому используйте <?php bloginfo('template_url'); ?>/style.css <?php bloginfo('template_url'); ?>/style.css всегда будет <?php bloginfo('template_url'); ?>/style.css стилей родительской темы.

Поскольку вопросы bloginfo эхо, я предполагаю, что вы не используете систему размещения в WordPress, которой вы должны быть. Это самый гибкий. Конечный пользователь хочет удалить вашу таблицу стилей? Просто просто отмените это .

Тем не менее, вы можете изменить вывод bloginfo через фильтр.

Чтобы понять, как это работает, вам нужно проследить, как работает bloginfo . Для начала bloginfo является оберткой для get_bloginfo . Итак, давайте посмотрим на это, линия относительно вашего вопроса:

 <?php function get_bloginfo( $show = '', $filter = 'raw' ) { switch( $show ) { // snip snip case 'stylesheet_url': $output = get_stylesheet_uri(); break; case 'stylesheet_directory': $output = get_stylesheet_directory_uri(); break; case 'template_directory': case 'template_url': $output = get_template_directory_uri(); break; // snip snip } $url = true; if (strpos($show, 'url') === false && strpos($show, 'directory') === false && strpos($show, 'home') === false) $url = false; if ( 'display' == $filter ) { if ( $url ) $output = apply_filters('bloginfo_url', $output, $show); else $output = apply_filters('bloginfo', $output, $show); } return $output; } 

И вот bloginfo .

 <?php function bloginfo( $show='' ) { echo get_bloginfo( $show, 'display' ); } 

Как вы можете видеть, фильтр всегда настроен для display , что означает, что WP будет использовать apply_filters на get_bloginfo .

Поэтому, чтобы изменить ситуацию, вы подключаетесь к bloginfo или bloginfo_url . Мы хотим bloginfo_url .

 <?php add_filter('bloginfo_url', 'wpse76262_change_stylesheet', 10, 2); function wpse76262_change_stylesheet($url, $show) { if ('stylesheet_url' == $show) { $url = '/the/change/stylesheet.css'; } return $url; } 

Существуют также фильтры в get_stylesheet_uri , get_template_directory_uri и get_stylesheet_directory_uri которые вы также можете использовать.

Существуют два различия между обоими методами:

  1. 'stylesheet_url' всегда ссылается на каталог текущей темы, будь то детская тема или родительская тема. 'template_url' всегда является только родительской темой.
  2. 'stylesheet_url' может быть отфильтрован плагином или дочерней темой. Фильтр называется 'stylesheet_uri' . Невозможно отфильтровать комбинацию 'template_url' и добавленной строки. Он менее гибкий.

Если вы хотите сохранить гибкость в таблице стилей . Не записывайте элемент link в header.php темы.