Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279

Как подключить файл дополнительных стилей из дочерней темы?

25.07.2018, 19:10. Показов 5427. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно подключить файл дополнительных стилей из дочерней темы.
Перепробовал несколько вариантов (3) не сработало. Может где-то ошибка в коде.
файл functions.php в паке дочерней темы

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
// 1 вариант подключить файл стилей из дочерней темы
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/stylemobile.css' );
}
 
// 2 вариант подключить файл стилей из ДТ
function my_styles_scripts() {
    wp_enqueue_style( 'easywp-child-4L', get_stylesheet_directory_uri() . '/style.css', array(), '', 'all' );
}
add_action( 'wp_enqueue_scripts', 'my_styles_scripts' );
 
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) exit;
 
// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED - Do not modify or remove comment markers above or below:
 
if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
    function chld_thm_cfg_parent_css() {
        wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array(  ) );
// 3 вариант подключить файл стилей из ДТ        
        wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'stylemobile.css', array(  ) );
    }
endif;
add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );
 
// END ENQUEUE PARENT ACTION
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2018, 19:10
Ответы с готовыми решениями:

Как подключить файл стилей к шаблону
Добрый вечер. Есть у меня значит my_templat.php &lt;?php /* Template Name: Название шаблона */ ?&gt;

Как подключить файл стилей CSS через JavaScript
вызов js скрита находится в теле документа. как мне в таком случае подключить CSS файлик &lt;link rel=&quot;stylesheet&quot;...

Подключение файлов дочерней темы
Здравствуйте, Подскажите пожалуйста: Имеется тема Impreza, нужно подключить файл дочерней темы в подпапке ...

21
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
26.07.2018, 05:15
Вариант 2 прекрасно работает.
Может у вас кеширование включено и страница не обновляется?
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
26.07.2018, 09:22
Вот подключение стилей в дочерней теме. И там т там основной стиль естественно под одним именем style.css.
CSS
1
2
3
4
5
6
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style')
    );
}
Подключите дополнительный стиль по аналогии с child-style, соответственно добавив папочку, куда вы там его загнали.
Цитата Сообщение от jurvrn Посмотреть сообщение
PHP
1
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/stylemobile.css' )' );
Так подключаются стили из родительской темы. Зачем вы подключаете stylemobile.css какой то еще? Подключают только основной?? По моему вы немного запутались
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
26.07.2018, 09:52
Расскажите зачем в дочерней теме подключать дефолтовый стиль (style.css) который и так автоматически грузится.
Вот эти два стиля подключаются без единой строчки кода в functions.php дочерней темы.
HTML5
1
2
<link rel='stylesheet' id='storefront-style-css'  href='http://woo/wp-content/themes/storefront/style.css?ver=2.3.3' type='text/css' media='all' />
<link rel='stylesheet' id='storefront-child-style-css'  href='http://woo/wp-content/themes/storefront-child/style.css?ver=2.3.3' type='text/css' media='all' />
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
26.07.2018, 10:36
Цитата Сообщение от HectorPrima Посмотреть сообщение
Расскажите зачем в дочерней теме подключать дефолтовый стиль (style.css) который и так автоматически грузится.
Вот из кодекса Вордпрес про дочки
CSS
1
2
3
4
5
6
7
8
9
10
11
12
/*
Theme Name: Twenty Ten Child
Description: Дочерняя тема для темы Twenty Ten 
Author: Ваше имя
Template: twentyten
*/
 
@import url("../twentyten/style.css");
 
#site-title a {
    color: #009900;
}
Подключать импортом или через функции - дело личное. Работает без подключения или нет, я лишних вопросов не задаю. В кодексе написано, что надо - я подключаю. Чтобы потом лишних вопросов не возникло..

Добавлено через 8 минут
Цитата Сообщение от HectorPrima Посмотреть сообщение
2
<link rel='stylesheet'
И еще. Так стили в вордпрес не подключаются. Именно в функциях и никаких абсолютных путей.
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
26.07.2018, 11:14  [ТС]
wwowa, HectorPrima, ситуация такая: создал дочернюю тему через Child Theme Configurator. Создал файлы по умолчанию (т.е. style.css и functions.php).
Внёс все нужные изменения через сам этот плагин в style.css дочерней темы по основным элементам. Но вот участок кода, отвечающий за адаптивность внёс редактирую style.css напрямую в конец кода.
Но вот если вносить правки в ручном режиме напрямую в style.css то они не сохраняются при копировании дочерней темы (из самого плагина, видимо в базу не попадают).
Вышел на решение - создать дополнительный stylemobile.css (отвечающий за адаптивность кусок кода) и подключать его после дочернего style.css.
Но подключить мне теоретических знаний не хватает по функциям.
Тот что второй вариант - это и есть functions.php из дочерней темы, но там подключается только дочерний style.css. Кэши удаляю, станицу обновляю. Этому форум уже научил )
CSS
1
@import url("stylemobile.css");
-работает, но тоже не сохраняется при копировании средствами самого плагина.
Поэтому вижу решение через function.php подключить два стиля (как бы дополнительно к основному)
Вот код файла функций, созданный дочерней темой - просьба прямо туда внести изменения (мне грамотности в коде не хватает)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) exit;
 
// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED - Do not modify or remove comment markers above or below:
 
if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
    function chld_thm_cfg_parent_css() {
        wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array(  ) );
    }
endif;
add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );
 
// END ENQUEUE PARENT ACTION
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
27.07.2018, 02:09
Цитата Сообщение от wwowa Посмотреть сообщение
В кодексе написано
Не вопрос. Продолжайте.
Цитата Сообщение от wwowa Посмотреть сообщение
Так стили в вордпрес не подключаются
Это я показал что wordpress сгенерировал. Естественно я так стили не подключаю
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
27.07.2018, 22:01
Цитата Сообщение от HectorPrima Посмотреть сообщение
Не вопрос. Продолжайте.
Я все-таки проверил. Вы правы, подключение в функциях лишнее. Стили дублируются. Но такое подключение мне предложил плагин One-Click Child Theme. Кликнул и создалось все... И работает. Оказалось чуть лишнее создается....
Цитата Сообщение от HectorPrima Посмотреть сообщение
Вот эти два стиля подключаются без единой строчки кода
Но без @import стили родителя не подключаются.???? Сайт только со стилями дочки???
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
27.07.2018, 23:28  [ТС]
Плагин предупреждает
Your stylesheet has changed since the last time you used the Configurator. Please follow the steps for "CONFIGURE an existing Child Theme" under the "Parent/Child" Tab or you will lose these changes.
Но что делал не разобрался. Поэтому решил создать дополнительный файл стилей и подключить через функцию
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
30.07.2018, 13:10  [ТС]
HectorPrima, wwowa, вот код в теории вроде всё правильно - но не работает
PHP
1
2
3
4
5
6
7
8
9
<?php
 
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
 
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',get_stylesheet_directory_uri() . '/style.css',array('parent-style') );
    wp_enqueue_style( 'child-style-mobile',get_stylesheet_directory_uri() . '/stylemobile.css',array('parent-style', 'child-style') );
}
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
30.07.2018, 21:53
stylemobile.css - лежит в корневой директории дочерней темы??
У меня когда "по первости" тоже ничего не работало, я просто проверял пути выводом их через "эхо". Примерно так попробуйте, какой путь напишет
PHP
1
echo "get_stylesheet_directory_uri() . '/style.css"
конечно оберните там в "php" где нужно или еще что.. Я без подсказок ни строчки не напишу правильно((
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
30.07.2018, 22:16  [ТС]
Заработало когда я добавил в строку цифру 12.
PHP
1
add_action( 'wp_enqueue_scripts', 'theme_enqueueх_styles', 12 );
Что она значит? В интернете только один раз встретились такое решение. Кстати 11 тоже работает, а 10 не работает.
Да и еще: при редактировать темы через саму тему стиль style.css подгружается только частично, а stylemobile.css нормально. Как будто они перемешиваются как то в этом случае неправильно. Как будто stylemobile первым идет, а надо вроде как наоборот.

Добавлено через 32 секунды
wwowa, HectorPrima,
0
 Аватар для wwowa
308 / 261 / 70
Регистрация: 01.12.2008
Сообщений: 1,031
31.07.2018, 09:34
Цитата Сообщение от jurvrn Посмотреть сообщение
Что она значит?
Это как раз и есть приоритет загрузки стилей. Что должно раньше загрузится. Естественно, последний загруженный стиль перебьет ранний. Отсюда могут быть проблемы. Вроде так, но я никогда этим приоритетом не пользовался и так все работает. Поэтому не особо в теме. Встречал в темах, ставят там 100, 200, чтобы наверняка последний загружался.
Так что подробней почитайте сами. А если заработало, то и пусть. Не мешай сайту работать
Кстати вот эти "дополнительные стили" в самой теме имеют второй приоритет, насколько я понимаю. Выше только стили прописанные в коде самих классов.
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
31.07.2018, 10:53  [ТС]
wwowa, HectorPrima, в итоге решил воспользоваться советом HectorPrima
и оставил "@import url("../easywp/style.css");" и оптимизированный HectorPrima functions.php
0
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
31.07.2018, 11:07  [ТС]
однако при редактировании темы через саму тему не все настройки из style.css дочерней темы подгружаются
скриншоты прилагаю
Миниатюры
Как подключить файл дополнительных стилей из дочерней темы?  
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
31.07.2018, 12:23
Цитата Сообщение от jurvrn Посмотреть сообщение
дочерней темы подгружаются
Может другие какие плагины мешают т.к. у меня все выглядело отлично.
Так же как на странице (не в редакторе)
Тестировал на голом WP
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
31.07.2018, 12:28  [ТС]
HectorPrima, только когда редактирование темы включаю (левая часть скриншота). Просьба проверить у себя
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
31.07.2018, 13:00
Лучший ответ Сообщение было отмечено jurvrn как решение

Решение

Цитата Сообщение от jurvrn Посмотреть сообщение
только когда редактирование темы включаю
Все понятно. Да у меня так же по разному отображается. Тут дела в самой теме Easywp
В файле easywp\admin\custom.php есть код
PHP
1
add_action( 'wp_head', 'easywp_customizer_css' );
он добавляет именно при настройке стили оригинальной темы прямо в код окна.
Для чего это нужно лень разбираться.
Можете попробовать к себе в function.php вставить код отключающий вышеописанный.
PHP
1
2
3
4
add_action( 'after_setup_theme', 'easywp_remove_opt' );
function easywp_remove_opt() {
    remove_action( 'wp_head', 'easywp_customizer_css' );
}
Вот что получается https://yadi.sk/i/UOG-BYbv3Zkaux
1
3 / 3 / 4
Регистрация: 09.07.2018
Сообщений: 279
31.07.2018, 16:00  [ТС]
HectorPrima, ещё раз спасибо, разбираться не надо для чего это, всё работает как надо!
У меня будет ещё один глобальный вопрос вашего профессионального уровня - по добавлению свободного блока над блоком постов. Это создам другую тему.
Немного правда не понятно почему мой вопрос не удалось решить без импорта стиля через дочерний style.css (ведь импорт как бы замедляет загрузку). Поэтому хотелось через функцию...

Добавлено через 13 минут
Цитата Сообщение от HectorPrima Посмотреть сообщение
Можете попробовать к себе в function.php вставить код отключающий вышеописанный.
PHP
1
2
3
add_action( 'after_setup_theme', 'easywp_remove_opt' );
function easywp_remove_opt() {
 remove_action( 'wp_head', 'easywp_customizer_css' );
}
а куда его вставить - в начало или конец кода в файле?
Все таки не нравиться мне импорт... На вашем решении построил функцию в двух вариантах: просьба сказать какая лучше и правильнее будет работать -
1
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) exit;
 
// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED - Do not modify or remove comment markers above or below:
 
if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
    function chld_thm_cfg_parent_css() {
        wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array(  ) );
    }
endif;
add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );
         
if ( !function_exists( 'child_theme_configurator_css' ) ):
    function child_theme_configurator_css() {
        wp_enqueue_style( 'chld_thm_cfg_separate', trailingslashit( get_stylesheet_directory_uri() ) . 'stylemobile.css', array( 'chld_thm_cfg_parent','easywp-maincss','font-awesome' ) );
    }
endif;
add_action( 'wp_enqueue_scripts', 'child_theme_configurator_css', 20 );
 
// END ENQUEUE PARENT ACTION
2
PHP
1
2
3
4
5
6
7
8
9
<?php
 
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles', 20);
 
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style',get_stylesheet_directory_uri() . '/style.css',array('parent-style') );
    wp_enqueue_style( 'child-style-mobile',get_stylesheet_directory_uri() . '/stylemobile.css',array('parent-style', 'child-style') );
}
0
 Аватар для HectorPrima
716 / 473 / 258
Регистрация: 19.12.2014
Сообщений: 1,801
01.08.2018, 02:56
Если уже сильно @import не нравится который вроде как сами разработчики советуют используйте свой первый вариант, т.к. во втором у вас дублируются стили в сгенерированом коде:
HTML5
1
2
<link rel='stylesheet' id='child-style-css'  href='http://wp3/wp-content/themes/easywp-child-1/style.css?ver=4.9.7' type='text/css' media='all' />
<link rel='stylesheet' id='easywp-maincss-css'  href='http://wp3/wp-content/themes/easywp-child-1/style.css' type='text/css' media='all' />
Цитата Сообщение от jurvrn Посмотреть сообщение
а куда его вставить - в начало или конец кода в файле?
Куда нибудь, в конец можете.
Цитата Сообщение от jurvrn Посмотреть сообщение
по добавлению свободного блока над блоком постов
Блок для вставки виджетов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2018, 02:56
Помогаю со студенческими работами здесь

Замена файлов родительской темы в дочерней
Допустим, если надо отредактировать футер, хедер, то ясно - перетащил его и все. Так они же сейчас так дробят эти файлы, что... Например...

Как распаковать файл ASP скриптом без дополнительных компонентов.библиотек
Проблему пытался решить следующим кодом: Dim exec var exec=new ActiveXObject('WScript.Shell'); var exec=shell.Run('pkunzip.exe...

Как воспроизвести mp3 файл без использования дополнительных dll файлов?
Нужна помощь - как воспроизвести mp3 файл используя только NET Framework 4... и иметь возможность сделать повторы воспроизведения mp3 ...

Не получается подключить таблицу стилей...
Уважаемые! Не могу к HTML документу подулючить таблицу стилей. Подскажите, в чем проблема? Архив прилагается. Спасибо.

Подключить несколько файлов стилей css в собственной теме
привет! делаю первые шаги в Wordpress. выложила готовую верстку, создала новую тему. необходимо подключить несколько файлов стилей. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru