Приветствую.
Я все же уделил массу время и протестировал кучу плагинов на эту тему, от топовых, до не известных.
В итоге настроив их для корректной работы по всему сайту и плагинам, теряется их смысл или скорость по тестам не изменяется, а в случаях с топовыми вообще становится еще хуже, так как сами плагины монстры)
Проигрыш по моим тестам в 10 очков в среднем у них от аналогичной функции RCL, за что Андрей спасибо большое.
Встал вопрос у меня как безболезненно перенести все возможное, в плагин.
Порядок действий
1. Отключаем от плагина и темы WP
wp_deregister_style(что отключаем)
wp_register_scrip(что отключаем)
2. Подключаем в RCL
add_action('rcl_enqueue_scripts','rcl_custom_scripts',10); function rcl_custom_scripts(){ rcl_enqueue_style('rcl-stls',rcl_addon_url('style.css', __FILE__)); rcl_enqueue_script( 'rcl-scrpts', rcl_addon_url('js/scripts.js', __FILE__) ); }
rcl_addon_url - заменить на полный путь.?
Или не так я иду в этом вопросе?
Как мы с тобой одинаково мыслим - я на твоем сайте - ты тут:)
Вот мой живой пример как я отключил скрипты темы point и bbpress
код:
// отменяем подключение в родительской теме function chp_deregister_script() { wp_deregister_script('point-customscripts'); wp_deregister_script('bbpress-editor'); } // подключаем в минимизацию реколл function chp_get_script(){ rcl_enqueue_script('point-customscripts',get_template_directory_uri() . '/js/customscripts.js',false,true); // true-в подвал rcl_enqueue_script('bbpress-editor',plugins_url( 'bbpress/templates/default/js/editor.js')); } function chp_chck_merge_scripts() { if(function_exists('rcl_include_scripts')){ // если активирован реколл - есть такая функция global $rcl_options; if($rcl_options['minify_js'] == 1){ // если в "Общих настройках" реколл "Минимизация скриптов" -> "Подключено" add_action('wp_print_scripts', 'chp_deregister_script', 100); add_action('rcl_enqueue_scripts','chp_get_script',10); } } } add_action('init', 'chp_chck_merge_scripts', 20);
Скопировал код не рассмотрев его - но и так работает.
Наверно не совсем верно вешать регистрацию на хук add_action('init'
в последней строчке. Все же для именно этих вещей у реколл есть хук add_action('rcl_enqueue_scripts'
Но на тот момент у меня и так работало. Но лучше переписать на правильный хук - вдруг однажды не подцепится в минимизацию
Ага, понял, сенкс, сейчас кофейку и все что можно в минимизацию реколл и потестю.
Самое интересное, что с минимизацией реколл вообще не надо мудрить с переносом чего то в низ, в верх. Очки сразу показывает отличные.
garry сказал(а)
просто выигрыш реально крутой выходит и уже все есть.
- тут продублирую для поколений))
дело в том что стили переносить в подвал можно
rcl_enqueue_style('unic_id_style', rcl_addon_url('style.css', __FILE__), true);
- последний аргумент true - грузить в подвале.
Главное - опускать в подвал не критичные для первого экрана стили. Тогда не будет эффекта дерганья.
А вот скрипты - тут аккуратней надо - т.к. они могут быть зависимы. Например от других библиотек или от скриптов их инициализирующих. Тут глаз да глаз нужен.
Еще Игорь вот хороший код для того чтоб посмотреть что и где грузится:
function otfm_check_styles($rcl_styles){ vda($rcl_styles); // otfm kint функция. Используй var_dump если не стоит тот mu-плагин return $rcl_styles; } add_filter('rcl_pre_include_styles','otfm_check_styles');
- вот как выходит:
- удобно чтоб подсмотреть id (handle) стиля и скрипта
и rcl_pre_include_scripts
для скриптов
еще в последних версиях Андрей добавил функции чтобы убрать скрипт или стиль по его id (handle). Мне как-то понадобилось стиль реколлбара отключить. Я его полностью своим заменил - в оригинале было много лишнего
rcl_dequeue_script() rcl_dequeue_style()
И вот как я отключил:
// отключим стили реколлбара - мы напишем свои, в дефолтных много лишнего function cwb_dequeue_style(){ rcl_dequeue_style('rcl-bar'); } add_action('rcl_enqueue_scripts', 'cwb_dequeue_style', 10);
В общем тут накидал всякого - читай, ищи... - это тянет на хорошее руководство если развернуть и расписать. Может как нибудь напишу его...
Я всегда боялся писать подобные руководства - потому что именно скрипты - ну поломают юзеры все нафиг. Слепо скопируют из руководства - понафигачат все в подвал или пройдет время - что-то у них отвалится - придут они на форум и не скажут что они это делали.
Потом нам на форуме головная боль будет. Да, подобное руководство конечно нужно, оно показывает мощь плагина... но последствия...
Реколл гибче становится - когда мы сами хотим его изменить и поменять что-то.
Взять аналогию трубы - она тоже гибкая - но наступает такой момент когда она лопается. И вся ответственность на том, кто пытался совладать с ее гибкостью.
Боюсь получится как в игре леминги - идут и идут на форум... И ты им всегда указываешь на
что надо отключить лишнее, переключиться на ВП шаблон по дефолту. Потом они бодаются и выполняют по руководству только часть (удобную для себя) и ты им вновь говоришь - пробуй на ВП шаблоне по умолчанию... - И вот пока они 100% по руководству не сделают -напишешь 5-10 сообщений и уговариваешь их это сделать. Время так и теряешь. А на что? Чтобы в очередной раз показать что реколл работает. Действительно много времени уходит на устранение вот таких стандартных тем на форуме
поосторожнее с объединением js-файлов надо быть, тк при минимизации некоторые скрипты могут стать нерабочими, например, может быть такое:
var object = { any1: 1, any2: 2 }
в нормальном режиме работать будет, а после минимизации нет, тк после последней фигурной скобки нет точки с запятой, автор скрипта должен закладывать в свой код поддержку минимизации, но не все это делают, иногда приходится вручную такие вещи править.
Это верно сказал, но править чужие библиотеки - не лучшее решение (либу обновишь и забудешь что манипуляции такие вновь проделать надо - в продакшене поламается). Я с 2мя такими сталкивался. В итоге просто их вынес в подвал и не включал в минимизацию.
Вот разница:
wp_enqueue_script('mpr-script', rcl_addon_url('incl/dist/jquery.magnific-popup.min.js', __FILE__),array('jquery'),'1.1.0',true); rcl_enqueue_style('prism_js_style',rcl_addon_url('dist/prism.css', __FILE__),true);
- скрипт я вывел в подвал. Но чтоб не было объединения реколл я его подключил ВП функцией
А стиль реколл функцией и он входит в объединений