Как сделать плагин

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

Данная статья предполагает, что wordpress уже установлен (на момент написания статьи у меня установлен WordPress 3.4.1.) и Вы хотите чуть глубже ознакомится с устройством этой отличной системы управления.

    Перед началом создания простого плагина woordpress вы должны ознакомится и понимать следующее:

  • Что такое wordpress
  • Как написать функцию на языке php

Плагин, отправляющий письмо при публикации поста

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

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

    Составим план действий:

  • Создать файл плагина.
  • Задать описание плагина, которое будет отображаться в админке wordpress.
  • Добавляем плагин в wordpress
  • Написать функцию отправки почты.
  • Повесить на событие публикации поста функцию отправки почты.
  • Установить и активировать плагин.

Переходим к делу.

Создание файла плагина wordpress

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

В wordpress по умолчанию плагины хранятся в папке wp-content/plugins, причем если Ваш плагин состоит только из одного файла, то можно кинуть его прямо в эту директорию. Если плагин включает в себя несколько файлов, то необходимо поместить его в отдельную директорию. Хорошим тоном является называть папку так же как и плагин.

Лучше всего сразу приучиться создавать отдельную папку для плагина. Создадим на локальном компьютере папку. У меня она будет называться post_publish_email_send. Так же создадим пустой php файл с тем же названием post_publish_email_send.

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

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

Добавление стандартной информации в plugin wordpress

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

Для того чтобы Ваш плагин соответствовал стандартам лицензии GPL2 просто добавьте чуть ниже следующие строки, указав в нужном месте электронный адрес:

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17

Сохраняем файл и наш плагин готов, правда никакой смысловой нагрузки пока не несет и в списке его не видно.

Добавляем наш плагин в wordpress

Для того, чтобы добавить наше гениальное произведение в админку системы управления wordpress необходимо скопировать только что созданную папку post_publish_email_send с файлом post-publish-email-send.php в папку wp-content/plugins на веб сервере.

Как сделать плагинНеактивные плагины

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

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

Пишем функцию отправки почты в плагине wordpress

В стандартном функционале wordpress имеется функция wp_mail(); которая построена на стандартной функции mail() из php. Отличие этих функции заключается в различии типов некоторых параметров, но в данный момент это не важно. В функции wp-mail они несколько расширены и более удобны для использования, хотя ее конструкция основана на функции mail() из php.

      В качестве параметров принимает следующее:
      $to — string (строка) или (array) массив с адресами получателей
      $subject — string (строка) с темой письма
      $message — string (строка) с содержанием письма
      $headers — string (строка) или (array) массив заголовков писем (для продвинутых)
      $attachments — string (строка) или (array) массив файлов, которые необходимо прикрепить к письму

    function post_publish_email_send($post_ID)
    {
    $to = 'test@test.ru'; //EMAIL получателя
    $subject = 'У нас новый пост'; //Тема письма
    $message = 'У нас новая статья на сайте. Запись имеет id='.$post_ID; //Тело письма с указанием ID записи
    wp_mail($to, $subject, $message);
    return $post_ID;
    }

    • function post_publish_email_send($post_ID)
    • {
    •     $to = 'test@test.ru';  //EMAIL получателя
    •     $subject = 'У нас новый пост'; //Тема письма

        $message = 'У нас новая статья на сайте. Запись имеет id='.$post_ID; //Тело письма с указанием ID записи

    1.     wp_mail($to, $subject, $message);
    2.     return $post_ID;
    3. }

    Про $post_ID будет написано чуть позже. Сейчас могу сказать что это ID записи которую опубликовали.

    Как видите в функции мы использовали всего три параметра: адрес получателя, тему письма и тело сообщения. Остальные поля можно оставить в данном случае незаполненными. Для того чтобы функция wp_mail работала, в файле php.ini должна быть разрешена отправка почты.

    Вешаем на событие публикации поста функцию

    В WordPress при публикации поста происходит событие publish_post. Кроме того это событие происходит если запись была отредактирована и опубликована заново.

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

    Список всех возможных событий можно увидеть тут: http://codex.wordpress.org/Plugin_API/Action Reference

    На этой странице мы можем найти действие publish_post — именно по нему мы хотим чтобы отправлялось письмо. Данное действие содержит аргумент post ID — идентификатор записи. Этот идентификатор будет отправлен в нашу функцию, как раз в переменную $post_ID.

    Теперь мы должны использовать функцию add_action которая добавляет определенные действия на указанное событие.

      add_action($tag, $function_to_add, $priority, $accepted_args);

    • $tag — название действия к которому привязывается действие. В нашем случае это publish_post
    • $function_to_add — название функции которая будет вызываться при возникновении денного действия. У нас это post-publish-email-send
    • $priority — приоритет запуска функции. Если у нас на событие публикации записи будет прикреплено две разные функции, то первая выполнится та функция у которой $priority меньше.
    • $accepted_args — количество аргументов, которые принимает функция (указываем цифрой количество аргументов). По умолчанию 1, а значит нам можно этот параметр не указывать так же как и $priority (у нас прикреплена всего одна функция)

    Теперь когда с add_option стало все более менее понятно, можно прикрепить к событию publish_post. Для этого в нашем файле плагина пропишем следующую строчку:

    add_action('publish_post', 'post_publish_email_send');

        add_action('publish_post', 'post_publish_email_send');

    В коде плагина не оставляйте пустых строк вне тегов так как wordpress на это выдает предупредительное сообщение при установку.

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

    В одном из следующих постов мы попробуем написать более сложный плагин.

    Источник: https://omelchuck.ru/wordpress-plugin-manual-p1/

    Создание плагина для WordPress. Часть 1

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

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

    Это первый урок серии «Создание плагина для WordPress», в которой будут рассмотрены важные принципы и составные части данного процесса.

    Читайте также:  Как подарить деньги на день рождения

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

    Что такое плагин для WordPress

    Это PHP код, который изменяет или расширяет начальный функционал системы.

    WordPress предоставляет простой, но гибкий API для создания плагинов. Вот некоторые преимущества, которые предлагает WordPress разработчикам:

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

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

    Название и файлы плагина

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

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

    Пример. Пусть наш плагин называется “Hello World Plugin” и для увеличения вероятности уникальности названия добавим префикс “My super prefix”, сокращенный до “MSP”. Таким образом мы получим уникальное название “MSP Hello World Plugin”. Поиск по плагинам подтверждает это.

    Следующий шаг — создание файлов плагина. Рекомендуется располагать плагин в отдельной папке внутри специальной директории для плагинов. Имя папки должно соответствовать названию плагина, в нашем случае можно назвать  ‘msp-helloworld’. Папка должна содержать главный файл плагина с таким же именем: ‘msp-helloworld.php’.

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

    Если ваш плагин использует множество файлов, загружает картинки, css или JavaScript, вам необходимо хранить их в подпапках вашего плагина. Правильная организация структуры файлов — признак хорошего тона. Мы будем придерживаться следующего шаблона:

    Как сделать плагинСтруктура плагина

    Заголовок плагина

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

    Заголовок — это комментарий PHP, расположенный вначале главного файла плагина:

    Источник: http://easy-code.ru/lesson/building-wordpress-plugin-part-one

    Нельзя просто взять и написать плагин для WordPress? – можно!

    • Сначала может показаться, что создание плагина для WordPress — это что-то невероятно сложное и это нужно прямо конкретно изучать, но на самом деле, уже прочитав этот пост, вы сможете создать свой собственный плагин.
    • На самом деле всё зависит от задач, которые выполняет ваш плагин — если он просто добавляет несколько строчек CSS в админку, то это займёт от силы 10 минут, а если вы создаёте плагин кэширования или резервного копирования сайта, то это уже другой разговор.
    • Например в начале этого года один мой приятель решил создать плагин, связанный с SEO и фильтрацией товаров, так его компания выделила ему 80к бюджета и дала два месяца на разработку.

    Шаг 1. Определиться с тем, какие задачи будет выполнять плагин

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

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

    add_action( 'admin_head', 'true_colored_admin_bar_0073aa' );
    function true_colored_admin_bar_0073aa(){ echo ''; // выводим стили
    }

    По сути это готовый код и если вы отправите его в functions.php, то всё будет отлично работать.

    Как сделать плагин

    Но мы же создаём плагин, поэтому этот код держим рядом и переходим ко второму шагу.

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

    Источник: https://misha.blog/wordpress/sozdai-svoi-plugin.html

    Как создать свой плагин

    Как сделать плагин

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

    Чем functions.php отличается от плагина

    Если коротко — то ничем. Хотя, до сих пор продолжаются споры о том, что лучше: ручная вставка кода в файл functions.php или использование плагина.

    Теоретически вставка кода в functions.php равносильна установке плагина, но это не совсем одно и тоже. Ведь при смене темы, мы получим совершенно другой functions.

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

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

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

    Поэтому при столкновении с очередным отрывком кода и выборе способа его использования попробуйте задать себе простой вопрос — что произойдет при смене активной темы в WordPress? Если ваш ответ — «перестанут работать счетчики посещаемости», «пропадут все произвольные типы записей» и т.д., то данный отрывок лучше сохранить в виде плагина.

    Cделать свой плагин не просто, а очень просто!

    Действительно, для написания хорошего комплексного плагина для WordPress требуется немало усилий и знаний в программировании, но, если вам нужно лишь вставить небольшой отрывок кода, то для этого подойдет и простой короткий плагин. Для этого воспользуйтесь небольшим php-шаблоном:

     , то их нужно удалить во избежание конфликта и «поломки» сайта!

    Сохраните весь массив кода в файле с каким-нибудь именем типа my-plugin.php, загрузите его в папку плагинов вашего сайта и активируйте в админке обычным способом. После этого почувствуйте себя крутым вебмастером-программистом!

    Источник: https://zgoba.ru/kak-sozdat-svoj-plagin/

    Как создать плагин для WordPress

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

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

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

    Этот плагин может содержать например все функции, которые не надо вызывать в теле темы. Это может быть – длина тизера, ограничение на минимальную длину комментариев и тд.

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

    Все плагины размещаются в папке wp-content/plugins, и каждый лежит в своей папке. Если у плагина всего один файл, то можно и без папки, но если много файлов, то для избежания путаницы и конфликтов, нужно все таки вложение в папках.

    Начнем создание своего плагина с того что создадим папку и назовем ее так как будет называться плагин. Я назову ее myplugin

    Потом, в этой папке создаем файл – myplugin.php. Это и будет наш плагин, имя можете задать свое. У нас будет только этот файл. Как и говорил, если Вы будете создавать более сложный плагин, то у Вас еще могут быть стили, изображения и другие файлы.

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

    Теперь плагин определится в админчасти и его можно активировать, но это ничего не даст так как он пустой. В низу под лицензией есть строка “СЮДА КОД ФУНКЦИЙ”. Вместо нее добавляем нужные функции и код всего плагина. В нашем случаи я для примера добавлю ограничение длины тизеров на главной до 25 слов. Для этого добавляем вот такую функцию.

    //длина описания новостей
    function new_excerpt_length($length) {
    return 25;
    }
    add_filter('excerpt_length', 'new_excerpt_length')

    Готовый код плагина теперь будет таким:

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

    На вашем блоге есть самодельные плагины?

    На этом все, спасибо за внимание.

    Источник: http://gnatkovsky.com.ua/kak-sozdat-plagin-dlya-wordpress.html

    Поиск по сайту. как сделать плагин wordpress

    • Главная»
    • Поиск
    • “как сделать плагин wordpress”
    • Из этого видеоурока Вы узнаете, как очень легко создать таблицы со скругленными углами.
    • Существуют сотни плагинов слайдшоу, от популярного Lightbox до продвинутого Galleria. Зачем создавать еще один? Наверняка вы используете подобный плагин на своем веб сайте. Неужели не интересно, как самому сделать такой замечательный инструмент. А свой код гораздо проще модифицировать и добавлять особенные фишки, если вдруг захочется развивать проект.
    • Иногда, по замыслу дизайна проекта нужно, чтобы слайдшоу на какой-нибудь странице автоматически меняло картинки. Однако такая опция доступна не во всех замечательных плагинах для демонстрации картинок. Между тем, добавить функционал автопроигрывания практически к любому слайдшоу очень просто.
    • В данном уроке мы создадим плагин WordPress, который можно использовать в качестве шаблона в других проектах. Также будет рассмотрен очень популярный вопрос – создание “коротких кодов”. “Короткие коды” существенно облегчают процесс публикации различных материалов на сайте под управлением WordPress.
    • Наполнение сайта не всегда должно быть видимым. Иногда оно может скрываться в самых неожиданных местах. В этом уроке мы сделаем мультяшную шапку, создадим два разных состояния для контента и анимируем переход между ними с помощью jQuery.
    • Фиксированная панель для сообщений является отличным инструментом для привлечения внимания пользователя вне зависимости от места ее размещения на сайте. Такая панель великолепно справляется с задачей анонсирования события, продукта, бонусов и прочих приятных новостей. Для WordPress существует много плагинов, которые легко использовать и настраивать.
    • В одном из прошлых видеоуроков мы говорили о том, как сделать обновление блога на движке WordPress, а сегодня мы поговорим про обновление сайта, который работает на Joomla.
    • Изучив этот урок, Вы узнаете как изменить дизайн полосы прокрутки на Вашем сайте таким образом, чтобы она вписывалась в остальной дизайн сайта.
    • В данном уроке мы сделаем плагин jQuery, который поможет привлечь внимание пользователя к определенному элементу страницы. Будет использоваться маленький указатель, который выводится рядом с курсором мыши. Такой пример может быть полезен для указания полей формы, кнопок или сообщений об ошибках, которые находятся вне поля зрения пользователя.
    • Когда каркас Вашего сайта имеет не фиксированную ширину в пикселях, а задается в процентах, то в этом случае появляются проблемы с созданием шапки сайта. О том, как эти проблемы решать, я рассказываю в этом видеоуроке.
  1. CSS (55)
  2. Изображения (40)
  3. Разное (53)
  4. Подобрать хостинг
  5. Источник: https://ruseller.com/search.php?s=%D0%BA%D0%B0%D0%BA+%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C+%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD+wordpress

    Как сделать WordPress-плагин расширяемым

    Представьте, что вы — разработчик плагина. Что вы сделаете, если пользователь попросит реализовать в плагине определённую функциональность? Но если она востребована только некоторыми пользователями, тогда её добавление непрактично.

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

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

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

    function get_some_post_titles() {
    $args = array(
    'posts_per_page' => 3,
    );
    $posts = get_posts( $args );
    $output = '';
    foreach ( $posts as $post ) {
    $output .= '' . $post->post_title . '';
    }
    $output .= '';
    return $output;
    }

    Этот код работает и выполняет поставленную задачу, но он не расширяемый. Почему? Потому что функция определяется сама по себе, нет никакого способа изменить её поведение без непосредственного изменения кода.

    А если нужно вывести более трёх последних постов. Или, например, добавить ссылки к заголовкам публикаций? Пользователь ограничен тем, как работает плагин и не может ничего изменить.

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

    Если пользователь хочет реализовать один из следующих:

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

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

    Так как же решить эту проблему? Нужно сделать плагин расширяемым.

    В приведенном выше коде видно, что функция отвечает за несколько операций:

    • Получает посты, используя get_posts.
    • Генерирует список заголовков постов.
    • Возвращает сгенерированный список.

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

    Области для добавления хуков:

    • вокруг и внутри основных процессов;
    • при выводе сгенерированного HTML;
    • для изменения постов или запросов к базе данных;
    • перед возвращением значений функции.

    Следуя этим правилам, можно добавить следующие фильтры, чтобы сделать плагин расширяемым:

    • добавить myplugin_get_posts_args для изменения аргументов get_posts;
    • добавить myplugin_get_posts для перезаписи результатов get_posts;
    • добавить myplugin_list_item для настройки генерации элементов списка;
    • добавить myplugin_get_some_post_titles для перезаписи возвращаемого списка.

    Код со всеми добавленными хуками:

    function get_some_post_titles() {
    $args = array(
    'posts_per_page' => 3,
    );
    // Позволить другим людям изменять аргументы
    $posts = get_posts( apply_filters( 'myplugin_get_posts_args', $args ) );
    // Позволить другим изменять массив постов, которые будут выводиться
    $posts = apply_filters( 'myplugin_get_posts', $posts, $args );
    $output = '';
    foreach ( $posts as $post ) {
    // Позволить другим людям изменять элементы списка
    $output .= '' . apply_filters( 'myplugin_list_item', $post->post_title, $post ) . '';
    }
    $output .= '';
    // Позволить другим людям изменять выводимый список
    return apply_filters( 'myplugin_get_some_post_titles', $output, $args );
    }

    Скачать исходный код.

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

    Прежде чем продолжать, обратим внимание на две важных особенности хуков, которые мы реализовали:

    • Мы обозначаем пространства имён хуков с помощью myplugin_.
      Это гарантирует, что имя хука не вступит в конфликт с хуком другого плагина. Если вызовется другой хук с тем же именем, это может привести к нежелательным последствиям.
    • Мы передаём ссылку на аргументы $args вовсе контексты хука.
      Если другие разработчики используют этот фильтр для изменения кода, они смогут применить $args как ссылку, чтобы понять, зачем вызывается хук.

    Помните уникальные сценарии, о которых я говорил выше? Пробежимся по ним ещё раз и посмотрим, как наши хуки сделали их возможными:

    • Если пользователь хочет отобразить продукты из WooCommerce или посты из определённой категории — он может либо использовать фильтрmyplugin_get_posts_args, чтобы добавить свои аргументы, когда плагин запрашивает посты. А также использовать myplugin_get_posts, чтобы полностью перезаписать список постов собственным.
    • Если пользователь хочет отобразить элементы в карусели, сформированной другим плагином, вместо простого списка, он может перезаписать весь вывод функции с помощью myplugin_get_some_post_titles, и вывести карусель оттуда.
    • Если пользователь хочет выполнить собственный запрос к базе данных, а затем использовать посты из этого запроса в списке, он может применить myplugin_get_posts, чтобы использовать свой запрос и изменить массив постов.

    Разработчики могут использовать add_filter, чтобы привязаться к нашим фильтрам (или использовать add_action для действий).

    Рассмотрим в качестве примера первый сценарий. Разработчик может использовать приведенный ниже код для отображения продуктов из WooCommerce, применив фильтр myplugin_get_posts_args, который мы создали:

    add_filter( 'myplugin_get_posts_args', 'show_only_woocommerce_products' );
    function show_only_woocommerce_products( $args ) {
    $args['post_type'] = 'product';
    return $args;
    }

    Кроме apply_filters также можно использовать do_action, чтобы сделать код расширяемым. Разница между ними в том, что первый позволяет изменить переменную функцию, а второй — выполнять дополнительные действия в разных частях кода.

    • При использовании действий мы раскрываем логику плагина другим разработчикам и позволяем им выполнять другие действия наряду с вашей логикой.
    • Например, расширяемый плагин резервного копирования можно «научить» загружать созданный файл на сторонний сервис, такой как Dropbox.
    • Ещё несколько причин, почему нужно разрешать другим людям изменять поведение вашего плагина.

    Это открывает плагину большие возможности настройки

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

    Это помогает людям вносить изменения без редактирования кода плагина

    Другим разработчикам не придётся изменять файлы плагина. Это огромное преимущество, поскольку редактирование кода плагина – плохая практика. Если плагин обновится, все внесенные в него изменения будут потеряны.

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

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

    Советы, как сделать плагин расширяемым:

    • Добавьте хуки в следующие места:
      • вокруг и внутри основных процессов;
      • при построении HTML-вывода;
      • для изменения постов или запросов к базе данных;
      • перед возвращением значений функций.
    • Используйте префиксы пространства имён в ваших хуках, чтобы избежать конфликтов именования.
    • Старайтесь передавать другие переменные, связанные с хуком, чтобы другие люди получали контекст того, что происходит в хуке.
    • Не забудьте документировать хуки плагина, чтобы другие смогли научиться их использовать.

    Как сделать ваш WordPress-плагин расширяемым — код примеров из этой статьи.

    Данная публикация представляет собой перевод статьи «How To Make A WordPress Plugin Extensible» , подготовленной дружной командой проекта Интернет-технологии.ру

    Источник: https://www.internet-technologies.ru/articles/kak-sdelat-wordpress-plagin-rasshiryaemym.html

    Как создать плагин для WordPress

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

    Плагин или код

    WordPress без плагинов – это оболочка CMS, наполненная разнообразными кодами, которые и заменяют плагины.

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

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

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

    Как сделать плагин для WordPress

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

    После этого создаём PHP файл. Сделать его можно легко. Создайте сначала обычный текстовый документ в формате .txt, а потом просто переделайте его расширение в .php. Для редактирования файла лучше использовать NotePad, о котором мы писали тут. Он удобен в части синтаксиса.

    • Перед тем, как создать плагин, открываем сделанный PHP-файл и вставляем в него код следующей конструкции:

    Источник: https://wpuroki.ru/plaginy/kak-sozdat-plagin.html

    Как создать плагин для определенного сайта для WordPress

    Когда делался редизайн этого сайта, я обнаружил свою большую ошибку на старой версии. Множество функционала добавлялось с течением времени в файл functions.php старой темы.

    Это не только увеличивало размер файла, но также повышало вероятность ошибок на сайте при каждом внесении изменений в него. Поэтому было принято решение создать плагин для всего сайта (плагин с хуками из functions.php), который не был привязан к шаблону.

    Что это за плагин, зачем он нужен, и как создать такой же для своего сайта вы узнаете из этой статьи.

    Что за плагин такой?

    Плагин Site-Specific — это определенное место для добавления сниппетов, которые вы находите на просторах интернета, и эти сниппеты не привязаны к текущему шаблону сайта. Другими словами:

    Время от времени, вы натыкаетесь на статьи, посвященные WordPress в интернете, где люди делятся сниппетами и советами (в том числе и на нашем сайте), которые вы добавляете в свой файл functions.php темы.

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

    Вот в таких случаях вам пригодится плагин для всего сайта (site-specific), который будет действовать также как и файл functions.php, но при этом позволит сохранить плюшки, к которым вы уже успели привыкнуть, при смене темы.

    Почему вам нужен этот плагин

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

    Вышеуказанные функции — это то, что вам понадобится в случае если вы решите сменить шаблон, и даже если не решите. Можете представить себе отключение шаблона и потерю всех своих шорткодов? Это будет кошмар!

    Источник: https://wpincode.com/kak-sozdat-plagin-dlya-opredelennogo-sajta-dlya-wordpress/

    Ссылка на основную публикацию