Как сделать плагин для wordpress
Плагин
WordPress состоит из трех основных составляющих: Ядро, Темы, Плагины. В этом разделе поговорим о плагинах, рассмотрим как создавать плагин для WordPress и коснемся следующих тем:
Раздел создается на основе официального руководства по плагинам. Здесь будет вольный перевод + личный опыт.
Что такое плагин?
Это дополнение, которое расширяет функционал WordPress т.е. создает дополнительный функционал поверх того, что уже предлагает WordPress.
Возможности плагинов безграничны, например:
Зачем нужны плагины?
Плагины позволяют расширять функционал WordPress без изменения кода ядра WordPress.
Из чего состоит плагин?
В простейшем случае плагин WordPress — это один PHP файл со специальными комментариями-заголовками. Минимум что нужно для плагина: правильный заголовок в главном файле и код, который будет что-либо делать.
Однако, чаще всего плагин состоит из нескольких файлов.
Нагрузка плагина
Подключение плагина само по себе ничем не отличается по нагрузке от подключения обычного PHP файла. Поэтому грамотно созданный плагин не может нагружать систему больше чем, если бы вы подключили тот же код напрямую в PHP.
Миф, что плагины нагружают систему родился, потому что очень много плагинов для WordPress написаны новичками неграмотно. Но это не значит, что все плагины создают излишнюю нагрузку. Просто нужно пользоваться плагинами от опытных/хороших разработчиков.
Техническое объяснение почему плагины не нагружают систему, читайте в заметке: «Тормозят ли плагины скорость работы WordPress?»
Этот раздел неполный. Здесь только основные вещи связанные с созданием плагина.
Реальный пример разработки плагина для WordPress
Дата публикации: 2016-07-01
От автора: для получения максимального результата от урока по разработке плагина для WordPress вы должны понимать базовые понятия, такие как экшены, фильтры, шорткоды, виджеты и объектно-ориентированный дизайн.
Реальный пример – Список филиалов компании
Сразу перейдем к реальному примеру того, как плагин может решать проблемы и улучшать функционал вашего сайта. Зачастую у компаний возникает задача показать адреса различных мест или их офисов. Для каждого места можно создать отдельную страницу, но куда лучше будет реализовать их в виде уникального контента со своими данными на одной странице, и завернуть все это в простой интерфейс.
Данный функционал можно было бы реализовать в дочерней теме, но из-за его универсальности лучше создать плагин, который потом можно будет использовать и на других сайтах.
В примере мы расскажем про разработку плагина, который будет обрабатывать данные и выводить их в виде списка мест. Места будут представлять собой пользовательский тип контента с дополнительными мета данными для хранения информации о местоположении. В плагине будет возможность отображать информацию несколькими способами (отдельная страница мест, виджет со списком мест и шорткод со списком мест).
Бесплатный курс «Основы создания тем WordPress»
Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц
Настройка
Давайте все настроим, перейдите в папку плагина и создайте следующие папки/файловую структуру
Самый верхний файл wp_simple_location_plugin.php будет главным. Тут мы будем загружать наши стили из папки CSS, а также дополнительные PHP файлы из папки inc.
Основной класс местоположения
В файле wp_simple_location_plugin.php будет прописано ядро плагина. Также в этом файле мы подключим дополнительные файлы, которые нужны для создания виджета и шорткодов.
Непрямой доступ
Рекомендуется закрывать прямой доступ к PHP файлам с помощью проверки на существование константы ABSPATH (если не существует, скрипт прекращает работу). Поместите код ниже прямо после открывающего PHP тега:
Создание плагина для WordPress
Дата публикации: 2011-11-17
От автора: в данном уроке мы рассмотрим создание простого плагина на WordPress. Плагины – это скрипты PHP, меняющие ваш веб-сайт. Изменениями может оказаться все, что угодно, от простейшей поправки заголовка до более сильнодействующей трансформации (такой, как изменение работы логинов, запуска отправки электронной почты и многого другого).
Тогда как темы меняют внешний облик вашего вебсайта, плагины меняют его функционирование. С помощью плагинов вы можете создать пользовательские типы почты, добавить в базу данных новые таблицы для отслеживания популярных статей, автоматически соединять папку с содержимым с сервером «CDN», таким, как Amazon S3… в общем, вы понимаете.
Тема или плагин WordPress?
файл functions.php, который дает множество способностей и возможность встроить в свою тему плагиноподобную функциональность. Так, если у нас есть этот файл functions.php, зачем тогда нужен плагин? Когда следует применять его, а когда нужно создать свой собственный?
Граница здесь более размытая, чем можно подумать, а ответ будет часто зависеть от потребностей. Если вам нужно всего лишь изменить длину по умолчанию цитат из своих постов, можно спокойно делать это в functions.php. Если нужно что-то, дающее возможность пользователям отправлять друг другу сообщения и становиться друзьями на вашем сайте, тогда вам создать плагин WordPress.
Бесплатный курс «Основы создания тем WordPress»
Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц
Основное различие состоит в том, что функциональность плагина сохраняется независимо от того, какую тему вы активировали, тогда как любые изменения, произведенные в functions.php, прекращают работать, как только вы переключаете темы. Кроме того, группирование связанной функциональности в плагин часто гораздо удобнее, чем оставление большого количества кода в functions.php.
Основы создания плагина на WordPress
Все, что понадобится при создании плагина WordPress – это папка и отдельный файл с одной строкой контента. Перейдите в wp-content/plugins и создайте новую папку с названием awesomeplugin. Внутри нее сделайте файл с названием awesomeplugin.php. Откройте его в текстовом редакторе и вставьте внутрь следующую информацию:
Из всей этой информации требуется только название плагина. Но если вы намереваетесь распространять свой плагин, то следует добавить как можно больше данных.
Проделав это, можно перейти на серверную сторону для активации своего плагина. Вот, собственно, и все! Конечно, он ничего не делает; но, строго говоря, это активный, функционирующий плагин.
Структурируем плагины
При создании сложной функциональности проще всего разделить свой плагин на множество файлов и папок. Выбор за вами, но следующие подсказки значительно облегчат вашу жизнь.
Если ваш плагин фокусируется на одном основном классе, поместите этот класс в файл основного плагина и добавьте один или несколько отдельных файлов для других функциональностей. Если ваш плагин улучшает серверную сторону WordPress с пользовательскими элементами управления, для хранения подходящих файлов вы можете создать обычные папки CSS и JavaScript.
В основном, стремитесь к балансу между структурой разметки, простотой использования и минимализмом. Разделите свой плагин на необходимое количество файлов, но не переборщите. Я обнаружил, что полезно ориентироваться на структуру популярных плагинов, таких как WP-PageNavi и Akismet.
Название плагина и его функции
При создании называйте функции, классы и сам плагин с осторожностью и вниманием. Если ваш плагин предназначен для генерирования изумительных цитат, то назвать его «excerpts», а его основную функцию «the_excerpt» кажется логичным. Но эти имена слишком общие и могут сталкиваться с другими плагинами, имеющими аналогичную функциональность и названия.
Самое простое решение – применять уникальные префиксы. Например, можно использовать «acme_excerpt,», или что-то другое с низкими шансами совпадения с чьей-то чужой схемой именования.
Безопасность плагина
Если вы планируете распространять свой плагин, то предельно важным становится вопрос безопасности, потому что теперь вы играете с чужими вебсайтами, а не только собственными. Все меры безопасности, которые вы должны предпринять, заслуживают отдельной статьи, так что ожидайте выходящую вскоре работу о том, как обезопасить свой плагин. Пока что давайте просто рассмотрим вкратце теорию; о реализации можно беспокоиться, когда крепко освоите материал.
Безопасность плагина обычно зависит от устойчивости двух его основ. Одна гарантирует, что плагин не способствует распространению сомнительных данных. Защита от этого влечет за собой фильтрование вводимой пользователем информации, избегание запросов для защиты от атак «SQL-вторжение» и так далее. Вторая убеждается, что у пользователя имеются полномочия и намерение проделать данное действие. В основном это означает, что только пользователи с полномочиями удалять данные (такие, как администраторы) должны иметь возможность делать это. Охранные меры гарантируют, что посетители не введены в заблуждение хакером, которому удалось разместить на вашем сайте злоумышленную ссылку.
Все это гораздо легче сделать, чем вы думаете, потому что WordPress предоставляет множество функций для выполнения этих задач. Однако здесь вовлекается много спорных вопросов и практического опыта, так что мы раскроем это в своей будущей статье. До того нужно многое узнать и сделать; если вы только начинаете, не беспокойтесь пока об этом.
Убираем за собой
Многие плагины виновны в разбрасывании вокруг себя ненужных данных. Данные, используемые только вашим плагином (такие как метаданные для постов или комментариев, таблицы базы данных и т.д.) могут болтаться мертвым грузом, если плагин не прибирает за собой.
WordPress предлагает три отличных ловушки, чтобы помочь вам справиться с этим:
register_activation_hook()
Эта ловушка позволяет вам создать функцию, запускаемую, когда активируется ваш плагин. В качестве первого аргумента она принимает путь к вашему файлу с основным плагином main, а в качестве второго аргумента функцию, которую вы хотите запустить. Это можно применять для проверки версии своего плагина, делать некоторые апгрейды между версиями, проверять правильную версию PHP и так далее.
register_deactivation_hook()
Название говорит за себя. Эта функция работает, как и ее вышеприведенный коллега, но запускается всякий раз, когда ваш плагин деактивируется. Я предлагаю применять следующую функцию при удалении данных; используйте эту только для общего поддержания порядка в хозяйстве.
register_uninstall_hook()
Эта функция запускается, когда администратор вебсайта удаляет ваш плагин на серверной стороне WordPress’а. Это отличный способ удалять валяющиеся вокруг данные, такие, как таблицы базы данных, установки и тому подобное. A недостаток метода заключается в том, что плагину нужна возможность запускать ее для работы; так, если ваш плагин не может таким способом делать деинсталляцию, то можно создать файл uninstall.php. Для получения дополнительной информации прочтите документацию к этой функции.
Если ваш плагин отслеживает популярность содержимого, то может оказаться неразумным удаление полученных данных при удалении плагина пользователем. В этом случае, по крайней мере, укажите пользователю место на серверной стороне, где он может найти данные плагина, или предоставьте ему на странице установок дополнительную опцию удаления данных до удаления самого плагина.
Сетевой результат всех наших усилий состоит в том, что пользователь сможет установить ваш плагин, использовать его лет 10, а затем удалить без следа на вебсайте, в базе данных или в файловой структуре.
Документация и стандарты кодирования
Если вы занимаетесь разработкой для большого сообщества, в этом случае документирование своего кода считается хорошими манерами (и полезным делом). Традиции этого довольно хорошо устоялись — phpDocumentor – один из примеров. Пока ваш код хорошего качества и к нему прилагается какая-то документация, у вас должно быть все в порядке.
Я, помимо прочего, документирую код для самого себя, потому что едва помню то, что делал вчера, и еще меньше – назначение функций, которые писал несколько месяцев назад. Документируя код, вы вырабатываете у себя хорошие привычки. А если начинаете работать в команда или если ваш код становится популярным, то документация станет неизбежной частью вашей жизни, так что можете начинать уже сейчас.
Хотя и не настолько важные, как документация, следующие стандарты кодирования – отличная идея, если вы хотите, чтобы ваш код соблюдал инструкции к WordPress.
Применяем на практике
От работы без веселья кони дохнут, так что давайте сделаем что-нибудь интересное со всеми только что полученными знаниями. Для демонстрации построим короткий плагин, отслеживающий популярность наших статей путем сохранения данных о том, как часто просматривался каждый из постов. Я буду применять ловушки, которые мы раскроем подробнее в очередной статье из этой серии. Пока вы улавливаете стоящую за ними логику, все отлично; вы будете заранее понимать ловушки и плагины!
Планирование наперед
Перед написанием любого кода давайте обдумаем и попробуем определить функции, которые понадобятся нашему плагину. Вот что я предлагаю:
Функцию, которая регистрирует просмотр каждый раз, когда показывается отдельный пост,
Функцию, которая дает нам возможность возвращать примерное количество просмотров,
Функцию, которая дает нам возможность показывать количество просмотров пользователю,
Функцию, которая возвращает список постов, основанный на подсчете их просмотров.
Подготовка нашей функции
Первым шагом будет создание папки и файловой структуры. Хорошо бы сложить их все в один файл, так что давайте перейдем к папке plugins и создадим новую папку с названием awesomely_popular. В ней сделайте файл с названием awesomely_popular.php. Откройте его и вставьте вверху немного метаданных, вроде этого:
Бесплатный курс «Основы создания тем WordPress»
Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц
Как превратить ваш сайт WordPress в приложение, шаг за шагом
Я слышал, вы спросите, зачем вообще создавать приложение? Приложения могут быть больше не очень полезны для маркетинга, но они довольно удобны для ваших клиентов, предоставляя им больший выбор в отношении того, как они взаимодействуют с вашим сайтом. С продолжающимся ростом мобильного Интернета (теперь больше людей получают доступ к Интернету через мобильные приложения, чем через настольные компьютеры), приложения процветают, поскольку большинство из них далеко не так неудобно или проблемно, как мобильные веб-браузеры.
Стоимость и разочарование, связанное с его постройкой, также значительно снизились. Раньше приложениями интересовались многие компании, но большинство из них не могли их создавать. Это было просто слишком сложно. Или дорого (большинство разработчиков берут более 100 долларов за час)
Но, к счастью, сейчас все по-другому. Вам больше не нужны деньги или знания программирования, чтобы создать компетентное приложение. А еще лучше – варианты есть. Сегодня мы рассмотрим:
Примечание о бесплатных конструкторах приложений
За последние несколько лет появилось множество «бесплатных» вариантов создания приложения, но одним из самых надежных является Adobe PhoneGap Build. Поскольку их сайт рекламирует, вы просто загружаете свои файлы HTML5, CSS и JavaScript, и сайт выполняет работу по их сборке в приложение, которое можно сразу загрузить. Лучше всего то, что он может создавать три одновременно для Android, Windows Phone 8 и iOS, что экономит ваше время.
В результате ничего особенного не получится. Фактически, все, что действительно делает этот метод, – это маскировать вашу домашнюю страницу под приложение. Когда зритель нажимает на значок, он просто попадает на тот же мобильный веб-сайт, который он увидел бы, если бы получил доступ к нему через браузер своего телефона. Итак, чтобы этот метод был эффективным, у вас должен быть существующий сайт, оптимизированный для просмотра на мобильных устройствах.
1 Убедитесь, что у вашего сайта WordPress есть мобильная версия
Если ваш сайт WordPress не оптимизирован для мобильных устройств, в этом нет никакого смысла. Так что оптимизируйте это! Конечно, проще всего использовать мобильную адаптивную тему WordPress, такую как Total. Но если ваша тема не реагирует, есть множество плагинов, которые могут помочь.
iThemes Mobile
iThemes Mobile позволит вам создавать простые, но эффективные мобильные темы на основе вашего текущего дизайна сайта. Панель администрирования позволяет вам настроить большинство аспектов их внешнего вида, не вмешиваясь в код.
Любой переключатель мобильных тем
Any Mobile Theme Switcher – это базовый плагин, который обнаруживает устройство, которое использует ваш зритель, и отображает определенную тему для этого устройства. Поэтому, если вы хотите сбалансировать несколько тем – по одной для каждой мобильной ОС – вы можете сделать это таким образом.
Мобильный пакет WordPress
Наконец, есть WordPress Mobile Pack, который предлагает множество кроссплатформенных мобильных веб-приложений, пользовательский интерфейс и варианты тем, а также простую интеграцию с Google Analytics.
2 Используйте PhoneGap Build для создания приложения.
Если вы технически подкованы и хотите разобраться, вы можете использовать Adobe PhoneGap, чтобы создать приложение для своего веб-сайта WordPress. У Adobe есть полное пошаговое руководство в своей документации, но вот краткий обзор шагов, которые вам необходимо выполнить.
Шаг 1: подготовка
Перед тем как начать, убедитесь, что у вас есть возможность протестировать свое приложение под рукой. Вы можете использовать инструменты разработчика браузера, чтобы имитировать просмотры мобильных устройств, или попробовать такую услугу, как CrossBrowser Testing. Но если вы действительно можете справиться с этим, лучше всего иметь под рукой устройства iOS и Android.
Затем вам необходимо установить Adobe PhoneGap Build на свой компьютер. Щелкните, чтобы загрузить версию для Mac или ПК, и следуйте инструкциям на экране. Adobe также предлагает установить бесплатное приложение для разработчиков PhoneGap, чтобы вы могли мгновенно тестировать свое приложение в процессе сборки.
Шаг 2. Создайте приложение
Затем используйте программу PhoneGap для создания своего приложения. Обратите внимание: PhoneGap основан на Cordova, поэтому вам нужно понимать его, чтобы кодировать свое приложение.
Чтобы начать работу, выберите из стандартного примера «Hello World», Framework7, Push-уведомления, React Hot Loader или пустой шаблон. Затем вам нужно будет выбрать, где на локальном жестком диске вы будете работать над своим проектом, и указать имя и идентификатор. Когда вы закончите, PhoneGap предоставит адрес сервера, который вы можете использовать для просмотра своего приложения.
Чтобы вы могли видеть, вашему корневому каталогу потребуются ключевые файлы для PhoneGap, чтобы фактически создать ваше приложение. В частности, ваши index.html (как минимум), config.xml и подкаталоги (последняя зависит от операционной системы).
Вот пример прямо со страницы структуры проекта приложения PhoneGap :
Вам также нужно будет создать свои собственные значки. Вы, конечно, можете справиться с этим самостоятельно или воспользоваться бесплатным онлайн-инструментом. IconsFlow – отличный инструмент, который поможет вам быстро создавать профессиональные значки приложений, используя предустановленные изображения, параметры цвета, градиенты и т.д. Просто создайте свой значок, создайте бесплатную учетную запись и загрузите файлы. Если у вас уже есть значок, но вам нужно изменить его размер для всех устройств и операционных систем, бесплатный App Icon Maker может это сделать. Но если вы выполните быстрый поиск в Google, вы обнаружите, что есть множество других веб-сайтов, сервисов и приложений, из которых вы можете выбрать свой значок.
Шаг 3. Тестирование вашего приложения
Когда ваше приложение готово к работе, вы можете протестировать его с помощью установленного ранее приложения PhoneGap Developer. Обязательно используйте указанный адрес сервера. Оттуда вы можете просматривать свое приложение на своем мобильном устройстве, устранять любые проблемы, добавлять исправления, повторно загружать и перестраивать до идеального состояния.
Важное примечание: PhoneGap Builder может работать с iOS только в том случае, если вы присоединились к программе iOS Developer (которая стоила 99 долларов в год на момент написания этой статьи) и предоставили свои сертификаты. С помощью программного обеспечения программы вы можете самостоятельно создать приложение. Но причина, по которой мы предлагаем PhoneGap, заключается в том, чтобы вы могли сэкономить время, выполнив все три сразу, исключая необходимость делать что-то отдельно. Так что да, вы платите за кучу услуг, которыми вы, возможно, в конечном итоге не воспользуетесь, но если вы хотите, чтобы ваше приложение было на каких-либо продуктах iProducts, они вроде бы вам здесь дороже.
3 Используйте альтернативные конструкторы приложений для WordPress.
Помимо инструментов iOS, вы можете использовать множество других сервисов и плагинов для создания приложений. Это значительно проще, чем создавать приложение самостоятельно. Некоторые из них также создадут (по крайней мере) приложение для Android бесплатно. Хотя вам обязательно стоит заглянуть на основной сайт разработчика, чтобы убедиться.
AppMySite
Создайте приложение для своего веб-сайта с помощью AppMySite. Этот простой в использовании плагин и сервис позволяет легко превратить ваш сайт WordPress (или даже магазин WooCommerce) в приложение всего за несколько шагов. Сначала получите плагин и зарегистрируйте свою учетную запись. Затем приступайте к работе над настройкой своего приложения – на выбор есть множество встроенных макетов и функций. Когда вы закончите, просто отправьте приложение для публикации (поддерживается Android и iOS). Кроме того, AppMySite синхронизируется с вашим веб-сайтом в режиме реального времени, чтобы поддерживать ваше приложение в актуальном состоянии с учетом любых новых публикаций или продуктов, которые вы публикуете.
Другие функции включают поддержку нескольких языков, интеграцию корзины и кассы, push-уведомления, интеграцию с социальными сетями, а также аналитику, которую вы можете использовать для отслеживания производительности приложения.
AppPress
AppPresser – это самый большой, самый популярный и предположительно первый фреймворк для мобильных приложений WordPress. Он предлагает полную интеграцию: там, где большинство разработчиков приложений используют только канал с вашего сайта WordPress, AppPresser позволяет вам использовать все ваши плагины, сообщения и страницы. Кроме того, оно автоматически обновляет приложение, как только вы вносите какие-либо изменения в свой сайт. Он также полностью поддерживает электронную коммерцию.
Приложение WPMobile
Приложение WPMobile позволяет создавать приложения для Android и iOS для вашего сайта. Хотя базовый плагин является бесплатным, вам нужно заплатить за пожизненную лицензию, чтобы фактически создать свое приложение (от 79 евро за один формат приложения или 149 евро за оба). С приложением WPMobile у вас будут варианты настройки, бесплатное тестирование в реальном времени, автоматические обновления приложений, поддержка push-уведомлений, социальная интеграция и поддержка премиум-класса (приветствуемая функция, если вы застряли).
MobiLoud
Хотя MobiLoud дороже (от 120 долларов в месяц), он сделает практически все за вас (включая отправку вашего приложения в App Store и Google Play), что делает цену довольно разумной. С MobiLoud ваше последнее приложение предлагает совместимость с несколькими устройствами, простой обмен в социальных сетях, монетизацию (с помощью рекламы или подписок), push-уведомления и многое другое. И когда служба связана с их плагином (ссылка выше), вы можете управлять своим приложением и push-уведомлениями из WordPress.
Наконец, есть группа людей, которым вы можете заплатить, чтобы они сделали это за вас. Тем не менее, с таким количеством простых и доступных способов DIY, вам действительно не нужно идти этим путем для базового приложения.
Существует множество способов создать приложение, и хотя на первый взгляд это кажется устрашающим, описанные выше методы делают его невероятно простым. Просто убедитесь, что у вас есть хороший мобильный веб-сайт, хорошо? А теперь дай мне это. Я здесь что-то не так понял? Есть ли другие методы, о которых мне следует знать? Не стесняйтесь оставлять свои отзывы ниже!