10 самых распространенных ошибок плагинов WordPress

Опубликовано: 2019-08-27

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

Плагины WordPress являются лучшими. Зная, что если вам нужно настроить свой веб-сайт, вы можете сделать это, просто найдя плагин, который делает то, что вам нужно, дает вам душевное спокойствие. И это также значительно снижает затраты.

Отсутствие необходимости (в большинстве случаев) разрабатывать индивидуальные решения — это облегчение. Это демократизирует доступ к сложным веб-сайтам за небольшую часть цены, которую они стоили бы несколько лет назад.

Грустный мужчина смотрит себе под ноги во время дождя
Я видел вещи, в которые ты не поверишь. Обнаружение записывающих плагинов за пределами редактора. Я видел, как баги светятся в темноте рядом с базой данных WordPress. Все эти моменты будут потеряны... во времени... как слезы под дождем. Пришло время их записать.

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

Что-то, от чего мы пострадали в Nelio с тех пор, как начали анализировать установки WordPress наших клиентов, — это количество мусора, которое мы можем там найти. Мы видели то, во что вы не поверите…

Вот почему сегодня я объясню некоторые из наиболее распространенных и любопытных проблем, с которыми мы столкнулись за эти годы с плагинами WordPress.

Список проблем с плагинами WordPress

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

Создайте дополнительные таблицы в базе данных

База данных WordPress — это зона боевых действий. Многие плагины расширяют его, добавляя свои собственные таблицы. Это не обязательно должно быть неправильно, но в большинстве случаев это не обязательно.

База данных WordPress
Основные таблицы базы данных WordPress.

База данных WordPress достаточно универсальна, чтобы вам не приходилось добавлять новые таблицы для использования вашим плагином. Так почему же разработчик видит необходимость добавлять больше таблиц в WordPress? Ответ довольно прост: комфорт и невежество.

Во многих случаях человеку с небольшим опытом работы с WordPress проще разместить дополнительные таблицы и сделать запросы непосредственно в SQL для чтения и изменения данных. Это, помимо того, что является дырой в безопасности, если не сделано правильно, вы избегаете использования метатаблиц.

Если вы хотите расширить информацию о пользователе, у вас есть таблица wp_usermeta . То же самое касается содержимого ( wp_postmeta ), комментариев ( wp_commentmeta ) или даже терминов таксономии (меток и категорий с таблицей wp_termmeta ).

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

Загружать плохие сценарии и стили

Большинству плагинов WordPress рано или поздно потребуется загружать свои собственные файлы JavaScript и CSS, иногда в панели администратора WordPress, а иногда в Интернете. И печально то, что это то, что часто делается неправильно.

Человек-паук несет человека из безопасного места в огонь (т.е. делает это неправильно)
Загрузка стилей CSS и файлов JavaScript в WordPress — это то, с чем, к сожалению, хорошо справляются немногие разработчики.

Чтобы добавить стиль CSS или файл JavaScript в WordPress, вы должны поставить его в очередь в стандартной очереди WordPress. Для этого сначала зарегистрируйте его с помощью функций wp_register_style и wp_register_script , а затем поставьте в очередь с помощью wp_enqueue_style и wp_enqueue_script соответственно.

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

Все остальное неправильно. И тут даже виновата документация разработчика. Посмотрите на примеры, которые входят в хук wp_head в Кодексе WordPress. Разработчики воспримут это как отсылку, а потом что-нибудь сломают?

Даже не думайте использовать wp_dequeue_script или wp_dequeue_style для удаления сценариев или стилей из очереди из WordPress. Много раз мы видели, как плагины удаляют из очереди версию jQuery, которая поставляется с WordPress, чтобы добавить свою собственную (которая обычно устарела), и оттуда все перестает работать…

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

Не очищать базу данных при деактивации плагина

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

Плагины WordPress обычно не стирают данные, которые они создают в вашей базе данных, когда вы их деактивируете. И нет, нет никакого мусоровоза, который время от времени проезжает мимо и забирает с собой эти бесполезные данные.

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

Скриншот диалогового окна деактивации Nelio Content
Когда вы деактивируете наши плагины, вы увидите диалоговое окно, подобное этому, где вы можете временно деактивировать его или удалить все.

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

Не предоставление руководства пользователя

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

Чувак выглядит удивленным
Если после установки и активации плагина WordPress вы чувствуете себя так, разработчик сделал что-то не так.

Бывают случаи, когда новый плагин добавляет меню в существующее меню, обычно это меню «Инструменты» или меню «Настройки». Таким образом, пользователю придется выяснить, где находится меню, включающее только что установленный и активированный новый плагин.

Обычно рекомендуется описывать в файле README.txt плагина, что произойдет после активации плагина в вашем WordPress. Так вы уменьшите беспокойство пользователя и немного облегчите жизнь. В противном случае, если пользователь не найдет, где находятся функции, которые добавляет плагин, он в конечном итоге деактивирует его, и как разработчик это последнее, что вы хотите.

Вы можете подумать, что это происходит только с новичками. Но это не так. Недавно я установил некий плагин для выполнения определенной задачи (напоминаю, я собирался не давать имён?), и оказался в такой же ситуации. Я не мог найти, где находятся настройки плагина. И если это случится со мной, который якобы давно работает с WordPress, то эта же ситуация ужасна для человека с меньшим опытом.

Изменение пользовательского интерфейса WordPress

WordPress прост в использовании, по крайней мере, так говорят. И важная часть этого — благодаря пользовательскому интерфейсу, который WordPress включает по умолчанию. Этот интерфейс прост в новой установке WordPress, но становится сложнее, когда мы добавляем все больше и больше плагинов.

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

Гомер Симпсон идет по улице
Если вы работаете в WordPress, но он не похож на WordPress, вы излишне сбиваете с толку своих пользователей.

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

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

Рекомендация заключается в том, что если вы являетесь разработчиком плагина WordPress, вы должны следовать руководствам по стилю WordPress и даже повторно использовать компоненты, которые он теперь предоставляет, для создания интерфейсов в React, экспортированных непосредственно из редактора блоков Gutenberg. Мы используем их при обновлении Nelio A/B Testing, и они великолепны.

Нарушение границ вашей собственности

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

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

Наливной крем
Если ваш плагин неисправен, возможно, виноват другой плагин, который разрушает стили или ломает ваши скрипты мусорным кодом.

Хорошо запрограммированные плагины, которые следуют рекомендациям WordPress, будут ставить в очередь сценарии и стили, которые влияют только на их приватную зону. Это означает, что когда они ставят эти ресурсы в очередь, у них есть условие в коде, чтобы проверить, пытаются ли они сделать это на частной странице своей собственности или нет. В противном случае они не будут ставить в очередь ничего за пределами этой области.

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

Обнаружить его проще, чем кажется. Если вы используете плагин, а его пользовательский интерфейс выглядит сломанным, вполне возможно, что другой плагин помещает JavaScript или CSS туда, куда не следует, и нарушает стили и поведение первого плагина. Мы видели это. У нас бывало (что ломают наш интерфейс) и, к сожалению, будет происходить и дальше.

Несоблюдение передовой практики программирования

Вам не нужно быть лучшим хакером в мире, чтобы программировать на WordPress, но следует ожидать минимального качества, когда дело доходит до программирования.

Одним из преимуществ (если не самым большим) WordPress является его философия открытого исходного кода. Вы всегда можете изучить исходный код плагинов (по крайней мере, плагинов в официальном репозитории).

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

Вы можете найти все: код, который приятно видеть, и код, который заставит вас плакать. И это не значит, что один хуже другого с точки зрения производительности. Но если вы видите хорошо документированный код с хорошими отступами, а также структурированный в соответствии с логическим распределением файлов и папок, вы нашли святой Грааль.

Если код плагина WordPress приятно видеть, это, вероятно, потому, что программист осторожен и отшлифован. Это явный признак качества.

Открытие дыр в безопасности

Плагин WordPress — это не что иное, как набор инструкций кода. Обычно PHP и JavaScript, что расширяет функциональность WordPress. Этот код будет достаточно безопасно получать данные от пользователя и в конечном итоге отображать информацию на экране.

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

Возможно, что при получении данных и выводе их на экран вы добавляете дыры в безопасности, если неправильно обрабатываете эти данные. WordPress уделяет большое внимание проверке и очистке входных данных и экранированию данных на выходе.

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

Выполнение неподходящих действий

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

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

Когда вы его найдете, все будет счастье, пока вы не поймете, что этот плагин идет с подарком. От сканеров, майнеров криптовалюты, спама до даже вредоносного кода, который может взять под контроль ваш сайт. Вы можете найти все.

Будьте осторожны с происхождением плагинов, которые вы там найдете. Официальный репозиторий WordPress и самые известные торговые площадки — единственный надежный источник ваших плагинов WordPress. Чтобы попасть в эти репозитории, разработчикам плагинов необходимо пройти несколько тестов качества. Доверяйте только известным местам и избегайте плагинов, полученных из ненадежных источников.

Не добавляя ценности

Худшая ошибка, которую может совершить плагин WordPress, — это не приносить пользу своим пользователям. Как разработчик, у вас иногда возникают сумасшедшие идеи, которые, по вашему мнению, могут быть очень полезны для других. Правда в том, что если ваш плагин очень маленький, количество пользователей, которое он получит, будет таким же.

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

Если как разработчик вы хотите выделиться среди остальных конкурентов, сосредоточьтесь на предоставлении ценности своим потенциальным пользователям. Таким образом, ваш плагин набирает популярность, необходимую для успеха в WordPress.

Выбор плагинов WordPress сложен

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

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

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

Избранное изображение Goh Rhy Yan на Unsplash .