Плагины vs коды WordPress
Опубликовано: 05.09.2018
Часто встречаю такие заявления, что мол, плагины тормозят блог, поэтому я вот такую-то фишку на блоге реализовал небольшой вставкой кода...
Что-ж, было время и я так считал. И некоторые функции на блоге реализовывал именно этим способом - вставкой кода. Считалось, что это здорово ускоряет мой блог. Мои читатели знают о чём речь, ибо статей по этому поводу здесь хватает.
Но, работая с блогом, вникая в суть работы движка я постепенно пришёл к выводу, что это не совсем так, а вернее - совсем не так.
WordPress Themes & Plugins Code Editor
В этой очень маленькой статье мы попробуем разобраться - а действительно-ли вставка кода лучше использования плагина?
Вставка кода
Как правило, для реализации какого-нибудь функционала, требуется вставить код в несколько файлов текущей темы , например: functions.php - собственно код, style.css - некое стилевое оформление нашей вставки и single.php - привязка всего этого к нашим записям.
Конечно, варианты тут могут быть разные - всё зависит от того, что конкретно мы хотим этим кодом реализовать.
Примем за основу, что ручки у нас не совсем кривые и при вставке кода мы случайно не затёрли какую-нибудь фигурную скобку в редактируемом файле, и блог у нас остался функциональным, и даже наша фишка заработала. Хотя знаю примеры, когда таким кодом некоторые умудряются заменять всё содержимое файла, либо втыкают код не туда и потом плачутся - почему у них блог перестал работать. Но сейчас не о них, мы договорились, что ручки растут оттуда откуда надо и голова более-менее светлая у нас.
Итак, вставили всё правильно, всё работает, ура, оркестр - тушь, цветы и всё прочее. Короче радуемся.
А теперь вот скажите, многие ли из Вас точно понимают что за код они вставили? Я имею в виду именно с программной точки зрения. Ведь как правило, большинство не пишут сами такой код, а берут его с других сайтов, где авторы публикуют эти коды зачастую, кстати, скопированные опять-таки с каких-то других сайтов. Возьмите это себе на заметку и пойдём дальше...
А дальше... наступает светлое завтра и где-то мы находим очередную фишку, которая нам очень понравилась и мы её себе тоже хотим, причём непременно кодом - ведь это так круто, вставлять код... Ну... это всем знакомый процесс.
Короче говоря, наш functions.php постепенно разрастается, а заодно с ним, возможно и style.css, да и всё тот-же single.php уже начинает пестрить непонятными вставками... Ведь, если помните - мы-же абсолютно не понимаем сути того, что вставляем - откуда-то скопировали и вставили куда было указано.
Даже если и понимаем, даже если пишем код сами... Ох как трудно бывает потом разобраться что для чего. Я, например, везде пишу комментарии к коду и то, порой не могу сообразить какой-же у меня работает, а какой был временным.
Всё-бы ничего, но потом бац - и вышло обновление темы. И всё, что мы с дрожью в руках делали где-то Ctrl+C, а у себя Ctrl+V в один миг исчезло. Ладно, многие настолько умны, что темы принципиально не обновляют.
Но разве в какой-то момент нам не захочется просто сменить шаблон? Всё устаревает и приедается со временем...
А ещё движок WordPress нет, нет да и подкинет своё обновление. Ведь разрабам надо-же за что-то денюжку получать, вот и сидят они - то одни фишки отключат, то другие на новые заменят. А код Ваш, как раз мог за эти фишки и цепляться. И в какой-то момент Вы, заглянув на свой блог, вдруг видите вместо ожидаемой красоты какие-то сообщения об ошибках, что-то типа « function split() is deprecated in... », ну или что-то другое - не суть.
И вот тут-то начинается самое интересное. Это Вы в момент вставки конкретного кода помнили куда вставили, что и зачем. Возможно помнили эту информацию ещё пару дней после вставки. А спустя несколько месяцев, да при нескольких вставках... Даже если Вы всё подробно задокументировали у себя на компьютере, то начинать возню со всеми такими вставками заново, какую убирать, а где она начинается, а вот эту скобочку надо удалять или это не от неё, а вот этот вопросик с угловой кавычкой?
Если Вас это пока минуло, то поверьте - ждёт!
Плагины
Они, конечно, бывают разные... Объёмные, содержащие большой функционал, и небольшие, лёгкие... Разные, вобщем.
Но давайте не будем сравнивать маленький код с громоздким плагином, например с Crayon Syntax Highlighter . Многие почему-то говоря о вставке кода подразумевают несколько строк этого кода, а под плагином подразумевают монстра. Давайте уж как-то по аналогии... Плагин, который реализует тот-же код.
Вот для наглядности возьмём мои плагины, например, плагин, выводящий связанные записи . До определённого времени у меня такие записи выводились именно вставкой кода . Посмотрите по обоим ссылкам, неужели лучше возиться со вставкой кода?
По сути что такое плагин? Это тот-же самый код! Это то, что Вы вставляете руками в разные файлы, но собранное в одном месте. И Вам не надо мудрить с корректировкой файлов своей темы. Активировали и всё! С любой темой.
Да, там есть ещё несколько строк кода, отвечающих за настройку плагина в админке. Но разве это не плюс плагина - возможность настроить под себя? Та-же настройка в коде - дело не для слабонервных...
Свой плагин, я привёл только в качестве примера. Речь вообще о плагинах и кодах.
И если плагин - это тот-же самый код, то почему всё ещё бытует мнение, что вот код не тормозит блог, а плагин тормозит?
А вот тут самые въедливые читатели подадут реплику из зала: «Дружище, плагин делает запрос к базе данных! Это и тормозит...»
Отвечу:
Не каждый плагин делает запрос к базе данных. Запрос к базе данных - это не почтовое отправление почтой России с ожиданием ответа непредсказуемое время. Запрос - это миллисекунды. На работе блога ни +5, ни -10 никак не отразятся. Если говорить о тех плагинах, работу которых подразумевается заменять кодом, то это вообще не серьёзно. Такие плагины либо вообще не делают запросов к базе, либо, если они имеют какие-то настройки, делают один на запись этих настроек и один запрос на чтение. А все настройки хранятся в одной строке. Нет, конечно, если запросов чересчур много, то да... Но речь-то о тех плагинах, которые пытаются заменить кодом, а они, как правило очень лёгкие. По крайней мере нигде не встречал вставки кода, заменяющей какой-либо серьёзный и объёмный плагин - All In One Seo Pack, например...Заключение
Вообще, по этому поводу есть отдельная статья про скорость загрузки - нет смысла повторяться.
Приведу, опять таки, для наглядности данные тестирования P3 :
Но не про мои плагины речь, в данном случае. Речь о том, что код вместо плагина не ускоряет блог, зато плагин имеет целый ряд очень явных преимуществ. Так, что не стоит менять шило на мыло, в смысле плагин на код, с потерей удобств и приобретением взамен этих удобств дополнительных проблем.
Если что-то не так, плагин можно отключить в один клик, а коды... пойди-ка найди их сначала и не ошибись... Я это уже испытал, когда убирал свой код визуального редактора на блоге Андрея Косолапова... Больше не хочу.
А вот всё-же, допустим плагин и код - одинаковы и по какой-то причине перестали работать, например после обновления движка... Найдите-ка автора кода, уговорите-ка его исправить... А если он ещё и не сам его писал, а взял где-то готовый...
А вот автор плагина, скорее всего сам уже взялся за исправления, да и обновление подоспеет автоматически - искать ничего не надо.
И в заключение я хочу привести несколько выдержек от разработчиков WordPress, ссылку на их статью мне как-то привёл Игорь Черноморец, за что я ему по сей день и благодарен.
К сожалению многие уроки WordPress в сети Интернет (серии «без плагинов») предлагают вставлять блоки кода именно в файл functions.php активной темы, потому что редактировать этот файл легче, чем создавать новый плагин, особенно через редактор файлов в панели администрирования WordPress....Таким образом после прочтения серии подобных уроков, файл functions.php становится огромным и нечитаемым, а при смене активной темы пропадает часть функционала, которая вовсе не относится к внешнему виду сайта....
Список активных плагинов в базе данных WordPress хранится в одной опции, которая будет выбираться с одинаковой скоростью, независимо от количества активных плагинов. Иными словами, количество активных плагинов не влияет на скорость работы сайта на WordPress . Влияет лишь их содержание, ровно так же как и содержание файла functions.php.
Ну так а я про что? И вообще, советую почитать ту статью полностью...
Вот, как говорится, и сказке конец. Кто слушал, а главное, чего-нибудь понял - тот молодец!
А я желаю Вам удачи и до встречи на моём блоге.