Здравствуйте.
Вносил правки по стилю плагина в css темы, но правок уже становится много и решил делать по человечески, через собственный шаблон.
Отсюда несколько вопросов.
Будет ли разница в скорости и нагрузке, если стили прописаны не поверх через ксс темы а в шаблоне дополнения-плагина?
Можете подсказать порядок действий для создания своего шаблона?
К примеру для шаблона primeforum я просто сделал копию имеющегося шаблона и переименовал его. И там уже делаю все правки.
А в данном случае мы имеем только набор php файлов.
Нужно создать папку с названием, в неё закинуть все php файлы из папки templates и ксс из папки css?
Хочу правильно к этому подойти, но свои шаблоны еще ни разу не делал. Кроме как для форума.
Lev сказал(а)
Будет ли разница в скорости и нагрузке, если стили прописаны не поверх через ксс темы а в шаблоне дополнения-плагина?
Рендеры браузеров работают достаточно быстро. Это не существенная нагрузка.
1. Единственный момент - очередность загрузки стилей. Т.е. когда вы переопределяете стили, то желательно свой стилевой файл грузить раньше. Но тогда все стили в нем должны быть с перевесом (т.е. когда в оригинале: .class
и у вас .class
, а чтоб у вас было .class .class
или div.class
).
2. Если стиль допа будет грузиться раньше - то вы можете увидеть некоторое моргание - когда вначале вы видите стили допа на мгновение, а потом видите свои - т.е. правки вступают в силу.
Но во втором случае можно схитрить применив css анимацию - плавного появления нужного блока. Я подобный подход применяю довольно часто - это позволяет исключить например прыганье html пока к блокам не применились стили. Например я блок автора так показываю или контент вкладок личного кабинета. Задержку на появление определяйте в 0.5 секунд к примеру.
Но если блок, который вы хотите изменить, находится не на первом экране при загрузке страницы - то это может и не требуется - т.к. пока юзер проскроллит - стили отрендерятся и применятся
В любом случае стили в css файле - лучше чем в inline (встроенные в html страницу) - файлы браузер умеет кешировать и по хождению по страницам он не грузит с вашего сервера их повторно. inline стили нужны только в важных местах и только в шапке страницы - для моментальной работы (стили кнопок сайта так грузятся - но их там не много)
А по темплейтам тут написано
- если доп имеет папку темплейтов - значит можете копировать в правильное место и писать туда и исправлять
Спасибо Владимир за такой развернутый и наверно исчерпывающий ответ.
Но некоторые моменты я все равно не понимаю 🙁
Otshelnik-Fm сказал(а)
Рендеры браузеров работают достаточно быстро. Это не существенная нагрузка.
Я боюсь за нагрузку на сервер.
Смотрю через панель разработчика, у меня есть не мало моментов, когда мой стиль (правки), ( выше, и как я понимаю, это уже перевес моего) но ниже мы видим 2-3 блока с тем же стилем, но перечеркнутым.
В таких случаях сервер сразу показывает мой стиль, или он сначала отрабатывает все предыдущие и только в конце мой? не всегда можно увидеть "мерцание" если элемент легкий. Это создает нагрузку?
Otshelnik-Fm сказал(а)
А по темплейтам тут написано
Эту статью я читал. Там я тоже не нашел как правильно подключать шаблон. Просто закидывать все файлы в папку темплейт? А как же ксс файл для каждого шаблона?
К примеру шаблон форума лежит прямо в папке /wp-content/wp-recall/add-on в собственной папке и в ней весь набор файлов.
Вот это не пойму. Как грамотно организовать свои папки с шаблонами и где эти папки должны находиться.
Вот в случае с обсуждаемым допом, там просто набор php и все.
Lev сказал(а)
Это создает нагрузку?
это называется экономия на спичках. Будем считать что не создает.
Lev сказал(а)
Просто закидывать все файлы в папку темплейт?
- нет не просто. Там все написано:
многих дополнений заметили папку templates, внутри которой есть php файлы. Эти файлы и есть шаблоны.
- речь идет о php файлах внутри папки templates
Lev сказал(а)
К примеру шаблон форума
- мы тут систему достижений обсуждаем. Что у нее в папке темплейтов - я не знаю. Ответит автор
Otshelnik-Fm сказал(а)
- нет не просто. Там все написано:
Там не написано как к шаблону recallbar.php закинутому в папку темплейт прицепить свой стиль.
а к шаблону group-list.php свой.
Все файлы шаблонов же у нас просто лежат рядом, в папке темплейт.
Если бы у каждого шаблона была своя папка в папке темплет, вопросов бы не было. Тут я знаю как делать.
А когда все файлы в одной куче... В каждом пхп прописывать путь до требуемого ксс ?
Otshelnik-Fm сказал(а)
- мы тут систему достижений обсуждаем. Что у нее в папке темплейтов - я не знаю. Ответит автор
Я пытаюсь начать работать с шаблонами на примере этого допа. Привожу пример шаблона в котором я разобрался. (и то не уверен, что он лежит там где надо...)
Я просто не знаю, как в данном случае будет правильно. 🙁
Зачем?
куда писать стили - наверно самый частый вопрос за неделю
Ну я так и делаю. Пишу в основной css WP.
По этому я тему начал с описание причины.
Вносил правки по стилю плагина в css темы, но правок уже становится много и решил делать по человечески, через собственный шаблон.
Просто в основном ксс файле уже 1300 строк кода. Из них 370 это к допу ачивок. Еще около 500 это по всем плагинам к реколл.
Вот и подумал, может пора все разложить по полкам. По шаблонам.
Форум приводил в пример, так как у него свой ксс, и все красиво.
Для меня это не сильно принципиально и основная причина такого желания, что бы снизить нагрузку на сервер, при чтение этого файла. Много переопределенных стилей же.
А вчера прочел Ваш устрашающий пост про request в network с 500 событиями. у меня местами около 300 ((
Много оффтопа конечно, но суть все равно по теме.
Вопрос, шаблонизация или общий ксс ))
По ссылке есть адекватный комментарий на эту тему
А еще лучше пункт 4-ре - т.к. он будет поддерживать сжатие и минимизацию стилей реколл
Вы пишете:
у меня местами около 300 ((
- про минимизацию реколл слышали?
Напугать и запутать могу еще больше - например этим комментарием
- но предупреждаю чтобы влазить в механизм отмены стилей - вы должны понимать все последствия и принимать ответственность. А то пойдут темы не форуме - тут не отображается после обновления, там поехало.
Не очень хорошая практика тонну стилей переопределять. Что дизайн совсем не нравится?
если есть желание сформировать свой стилевой файл для каждого шаблона, то это можно легко сделать на основе примеров из статьи
в частности:
add_action('rcl_include_template_after', 'add_custom_content_after_template', 10, 2); function add_custom_content_after_template($templateName, $path){ if($templateName != 'custom.php') return false; //через echo выводим нужный нам html-код //после подключения шаблона custom.php }
Для подключения стилевого файла для шаблона custom.php используем такой код
add_action('rcl_include_template_after', 'add_custom_content_after_template', 10, 2); function add_custom_content_after_template($templateName, $path){ if($templateName != 'custom.php') return false; rcl_enqueue_style('style-template', 'тутУрлДоСтилевогоФайла'); }
при таком подходе стили шаблона будут подгружаться на странице, только когда будет подключаться указанный шаблон, а если для подключения использовалась функция rcl_enqueue_style, как в моем примере, то также будет участвовать в минимизации
В папке /wp-content/wp-recall/add-on/achievement-system/templates лежат шаблоны вывода, на странице плагина описано зачто каждый файл отвечает. В них формируется вывод, туда css сувать ненадо. Копируете нужные файлы из этой папки в папку /wp-content/wp-recall/templates и вносите желаемые изменения. При подключении шаблона он вначале ищется в папке /wp-content/wp-recall/templates и если его там нет то только тогда берет стандартный шаблон из папки темы.
По css вам уже написали что делать