Что нужно помнить при создании плагина WordPress с нуля
Опубликовано: 2022-01-02Плагин WordPress - это фактически один файл или группа файлов, которые расширяют или улучшают функциональность сайта WordPress.
Каждый новый разработчик знает «Как кодировать?», Но при создании плагина в WordPress разработчик должен помнить о некоторых основных требованиях для создания плагина WordPress в дополнение к качеству кода, безопасности и функциональности.
В этом руководстве описаны важные шаги, которые следует учитывать при создании плагинов WordPress с нуля.
В плагинах WordPress очень важно понимать хуки WordPress, например действия и фильтры. Хуки позволяют плагинам работать с определенной функциональностью в определенное время в рамках функций WordPress.
Список хуков действий: https://codex.wordpress.org/Plugin_API/Action_Reference
определить ('WP_DEBUG', истина); --- Параметр WP_DEBUG был добавлен в WordPress версии 2.3.1. --- По умолчанию предполагается, что это ложь. Однако в файле wp-config.php обычно устанавливается значение true.
-> Добавьте заголовок информации о конкретном плагине в наш только что созданный файл в папке плагинов.
/ * Название плагина: Тип сообщения с отзывами URI плагина: https://wordpress.org/plugins/testimonial-post-type/ Описание: Создайте тип отзыва, это таксономия и теги. Версия: 1.0 Автор: Elsner Technologies Pvt. ООО URI автора: https://www.elsner.com Текстовый домен: тип отзыва-пост Путь к домену: / languages * /
Связанный: Недавно запущенный плагин WordPress Эльснера: Шорткод слайдера сообщений
-> Все плагины должны иметь уникальные имена функций, определения и имена классов.
Это предотвращает конфликт вашего плагина с другими плагинами или темами.
-> Не используйте __ (двойное подчеркивание), wp_ или _ (одинарное подчеркивание) в качестве префикса.
Они зарезервированы для самого WordPress. Вы можете использовать их внутри своих классов, но не как отдельную функцию.
-> Защитите свой плагин от прямого доступа к файлам.
если (! defined ('ABSPATH')) выход; // Выход при прямом доступе
- Вы можете избежать прямого доступа к файлам, поместив этот код в начало всех файлов php:
-> Пожалуйста, добавьте одноразовый номер к вашим POST-вызовам, чтобы предотвратить несанкционированный доступ.
nonce (число используется один раз)
Одноразовые номера WordPress - это не числа, а хэш, состоящий из цифр и букв. Они также не используются только один раз, но имеют ограниченный «срок службы», по истечении которого они истекают.
Обычно мы генерируем такой URL-адрес, который удаляет post_id 174
http://example.com/wp-admin/post.php?post=123&action=trash
Этот URL идеален, но не безопасен. Предположим, злоумышленник знает идентификатор сообщений, а затем злоумышленник может удалить сообщения с этим адресом без вашего ведома.
Добавление одноразового номера предотвратит это. Например, при использовании одноразового номера URL-адрес, который WordPress создает для пользователя, выглядит следующим образом:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204
$ nonce = wp_create_nonce ('my-action_trash');- Это просто возвращает само значение nonce.
- Это значение можно указать в URL-адресе, например
действие = 'http: //example.com/wp-admin/post.php? post = 123 & action = trash & _wpnonce ='. $ nonce;
- Проверка одноразового номера, переданного в URL
wp_verify_nonce ($ _REQUEST ['_ wpnonce'], 'my-action_trash');Связанный: Как отправить свой плагин в каталог плагинов WordPress?

-> Пожалуйста, продезинфицируйте, уйдите и подтвердите свои POST-вызовы
Санитарная обработка: очистка пользовательского ввода
Никогда не следует вставлять необработанные данные в базу данных, даже с помощью функции обновления или вызова prepare ().
Очистка ваших данных POST при их использовании для вызовов действий или перенаправления URL-адресов снизит вероятность уязвимостей XSS.
sanitize_text_field ($ _ POST ['post_name']);
- Данные можно очистить с помощью вышеуказанной функции.
- За кулисами функция выполняет следующие действия:
Проверяет наличие недопустимого UTF-8
Преобразует одиночные символы <в сущность
Удаляет все теги
Удалите разрывы строк, табуляции и лишние пробелы
Стрип октеты
- sanitize _ * () класс вспомогательных функций
https://developer.wordpress.org/plugins/security/securing-input/
Проверить: проверка ввода пользователя
Помимо дезинфекции, вы должны подтверждать все свои звонки. Если вызов $ _POST должен быть только числом, убедитесь, что это int (), прежде чем передавать его через что-либо. Каждый раз, когда вы добавляете данные в базу данных, это должны быть правильные данные.
intval ($ _POST ['сообщение']); --- если $ _POST ['сообщение']
имеет числовое значение, он вернет истину. Если нет, то ложь.
Побег: защита вывода
Экранирование заключается в том, чтобы взять данные, которые у вас уже есть, и защитить их перед отображением для конечного пользователя.
Экранирование / приведение вывода просто устраняет любую двусмысленность и добавляет ясности.
<h4> <? php echo esc_html ($ title); ?> </h4> --- esc_html ()
следует использовать в тех случаях, когда элемент HTML включает в себя раздел данных, вывод которых у нас есть.
esc_html (строка $ текст)Экранирование для блоков HTML.
esc_html_e (строка $ текст)Отображать переведенный текст, который был экранирован, для безопасного использования в выводе HTML.
esc_html__ (строка $ текст)Получить перевод $ text и экранировать его для безопасного использования при выводе HTML.
<img alt = "" src = "<? php echo esc_url ($ picture_url);?>
--- esc_url ()следует использовать для каждого URL-адреса, включая те, которые указаны в атрибутах src и href элемента HTML.
<? php echo esc_js (значение $); ?> --- esc_js ()
предназначен для встроенного Javascript.
<ul class = "<? php echo esc_attr ($ stored_class);?>">
--- esc_attr ()можно использовать для всего остального, что печатается в атрибуте элемента HTML.
Примечание :-
Пожалуйста, проверьте ссылку ниже, чтобы понять, где находятся папки и как их лучше называть
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories
Если возможно, сохраните данные в таблицы wp_options.
Конечная цель всего этого - гарантировать, что недействительные и небезопасные данные никогда не будут обрабатываться или отображаться. Очистить, проверить, избежать всего. Кроме того, никогда не верьте, что пользователи всегда будут вводить разумные данные.
Связанный: Как настроить страницу входа в WordPress
