Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Использование минимизации и объединения от RCL
14ответ(ов) в теме
garry
не в сети 3 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
1
12:29

Приветствую.
Я все же уделил массу время и протестировал кучу плагинов на эту тему, от топовых, до не известных.
В итоге настроив их для корректной работы по всему сайту и плагинам, теряется их смысл или скорость по тестам не изменяется, а в случаях с топовыми вообще становится еще хуже, так как сами плагины монстры)
Проигрыш по моим тестам в 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 - заменить на полный путь.?

Или не так я иду в этом вопросе?

Редакции сообщения
16.12.2017 12:30garryПричина: не указано
16.12.2017 12:34garryПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 20 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
12:35

Как мы с тобой одинаково мыслим - я на твоем сайте - ты тут:)

Вот мой живой пример как я отключил скрипты темы 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);

2
garry
не в сети 3 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
3
12:39

Супер, сейчас буду разбираться, просто выигрыш реально крутой выходит и уже все есть.
Спасибо!

PS. Это хорошо, что сошлись, значит просто мего супер функция точно 🙂

1
Вова (Otshelnik-Fm)
не в сети 20 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
12:40

Скопировал код не рассмотрев его - но и так работает.
Наверно не совсем верно вешать регистрацию на хук add_action('init' в последней строчке. Все же для именно этих вещей у реколл есть хук add_action('rcl_enqueue_scripts'

Но на тот момент у меня и так работало. Но лучше переписать на правильный хук - вдруг однажды не подцепится в минимизацию

1
garry
не в сети 3 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
5
12:46

Ага, понял, сенкс, сейчас кофейку и все что можно в минимизацию реколл и потестю.
Самое интересное, что с минимизацией реколл вообще не надо мудрить с переносом чего то в низ, в верх. Очки сразу показывает отличные.

Редакции сообщения
16.12.2017 12:47garryПричина: не указано
16.12.2017 12:47garryПричина: не указано
0
Вова (Otshelnik-Fm)
не в сети 20 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
6
12:55

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);

В общем тут накидал всякого - читай, ищи... - это тянет на хорошее руководство если развернуть и расписать. Может как нибудь напишу его...

2
garry
не в сети 3 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
7
13:02

Владимир, спасибо, великолепно теперь и все по полкам и с id (handle) теперь все просто без открывания кучи файлов.
Руководство по этому моменту конечно будет полезно, особенно у кого по 50+ скриптов и стилей грузится 🙂

2
Вова (Otshelnik-Fm)
не в сети 20 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
8
13:12

Я всегда боялся писать подобные руководства - потому что именно скрипты - ну поломают юзеры все нафиг. Слепо скопируют из руководства - понафигачат все в подвал или пройдет время - что-то у них отвалится - придут они на форум и не скажут что они это делали.

Потом нам на форуме головная боль будет. Да, подобное руководство конечно нужно, оно показывает мощь плагина... но последствия...

Реколл гибче становится - когда мы сами хотим его изменить и поменять что-то.
Взять аналогию трубы - она тоже гибкая - но наступает такой момент когда она лопается. И вся ответственность на том, кто пытался совладать с ее гибкостью.

1
garry
не в сети 3 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
9
13:15

Поломается то только при подключенном, отключат и вернется все на место и возможно начнут разбираться. Не начнут, всегда есть куча монструозных плагинов, которые красиво так все и ярко покажут и кеш заполнят и напишут о оптимизации на 220% 🙂

0
Вова (Otshelnik-Fm)
не в сети 20 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
10
13:26

Оффтоп
Я боюсь именно того что они будут приходить и не говорить о своих оптимизациях. И думаешь они будут помнить что включить-отключить минимизацию нужно? Что тему переключать надо на дефолтную?
Боюсь получится как в игре леминги - идут и идут на форум... И ты им всегда указываешь на

Вы не можете просматривать опубликованные ссылки

что надо отключить лишнее, переключиться на ВП шаблон по дефолту. Потом они бодаются и выполняют по руководству только часть (удобную для себя) и ты им вновь говоришь - пробуй на ВП шаблоне по умолчанию... - И вот пока они 100% по руководству не сделают -напишешь 5-10 сообщений и уговариваешь их это сделать. Время так и теряешь. А на что? Чтобы в очередной раз показать что реколл работает. Действительно много времени уходит на устранение вот таких стандартных тем на форуме

1
Андрей CS
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
11
13:59

поосторожнее с объединением js-файлов надо быть, тк при минимизации некоторые скрипты могут стать нерабочими, например, может быть такое:

var object = {
	any1: 1,
	any2: 2
}

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

0
Вова (Otshelnik-Fm)
не в сети 20 минут
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
12
14:06

Это верно сказал, но править чужие библиотеки - не лучшее решение (либу обновишь и забудешь что манипуляции такие вновь проделать надо - в продакшене поламается). Я с 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);

- скрипт я вывел в подвал. Но чтоб не было объединения реколл я его подключил ВП функцией
А стиль реколл функцией и он входит в объединений

0
garry
не в сети 3 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
13
15:34

Понял, буду обращать внимание и да, если что вниз.

0
garry
не в сети 3 часа
На сайте с 04.01.2014
Участник
Тем 146
Сообщения 2933
14
18:31

В принципе все работает и можно таким образом перенести в rcl все стили, кроме тех в которых картинки прописаны. Их можно вниз отправить.

0
Тема закрыта. Публикация новых сообщений запрещена.