Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress Plugins
Code

Создаём свою систему WordPress Messaging, часть 1

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Creating a Custom WordPress Messaging System.
Creating a Custom WordPress Messaging System, Part 2

Russian (Pусский) translation by Yuri Yuriev (you can also view the original English article)

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

Прямо из коробки WP предлагает богатый функционал программирования интерфейса (API).  Например, если понадобится создать административную страницу только предложенными средствами,   вы обратитесь к Settings API.

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

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

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

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

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

Начнём, пожалуй.

Что вам понадобится в процессе обучения

Если вы были на каких-то моих предыдущих уроках, то знаете, что любой урок (или серию уроков) я начинаю с двух вещей:

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

Давайте с этого и начнём.

Ваши средства разработки

Вот всё, что вам понадобится для  проекта, который мы будем создавать.  

  • PHP 5.6.25
  • MySQL 5.6.28
  • Apache (или Nginx, если вам с ним удобней)
  • WordPress 4.6.1
  • Ваш любимый редактор или любое IDE

Если сомневаетесь, как это всё собрать, рекомендую прочитать  this series.

Не буду настаивать на выборе строго определённого софта и говорить, чем один лучше другого при всём их многообразии. Если вы только начинаете, очень рекомендую бесплатную версию  MAMP.  Он совместим с macOS и Windows, так что способен выполнить многие задачи. Он прост в понимании и управлении, готов к работе сразу после установки.

Наш план действий

Короче, вот вам предварительный набросок действий в этой серии уроков

  1. В этом уроке мы создадим минимальный набор настроек плагина и определимся, что нам понадобится вначале.
  2. Во второй части продвинемся немного дальше, добавляя настроек базовой странице администратора  WordPress. Сделаем ручные хуки, которыми будем пользоваться, проверим их восприятие сервером. Заложим основу нашего Settings Messenger.
  3. В следующем уроке начнём внедрение наших настроек Messenger , добавим поддержку ошибочных и успешных сообщений, коснёмся вопросов защиты.
  4. Закончим курс, связав вместе все наработки,  посмотрим их в действии и получим окончательный вариант плагина, готового к загрузке.

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

В окончательном варианте это выглядит именно так.

Начало заполнения плагина

Сначала определимся, что для создания плагина  нам понадобятся:

  • страница администратора
  • строка меню, ведущая на эту страницу
  • bootstrap file как основа

Давайте соберём эти части вместе, так чтобы они заработали.

The Menu Item

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

Для этого нам понадобятся два класса и один файл: класс для описания подменю, класс для описания страницы подменю и файл содержимого самой страницы. 

Перед тем, как приступать, рекомендую создать следующую структуру папок:

The plugins directory structure

Значит, папка admin содержит подпапку views . В папке admin должны быть class-submenu.php и class-submenu-page.php. Поговорим о странице администратора.

Рассмотрим каждый класс по отдельности.

class-submenu.php

Этот класс даёт возможность прописать название меню в опциях:

Если вы читали the API call в Codex, то обратили внимание, что он представлен в разделе Tools menu, доступен  через "Tuts+ Custom Messages" и расположен так, что мы его сразу увидим.

Запомните, это метод init . Эта функция подхватывается add_options_page из WordPress's admin_menu хуком и видна на протяжении всего жизненного цикла WordPress.

Во-вторых, функция  доступна через любую из возможностей manage_options и может назначать рендер через  submenu_page , который ей принадлежит.

В чём проблема? Это не страница подменю.  Давайте пропишем этот класс. 

class-submenu-page.php

Код этого класса приведён ниже:

Простой класс Submenu_Page.   Его задача показать settings.php page, которую мы и рассматриваем.

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

 The Administration Page

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

Короче, здесь лишь указание для WordPress о том, что на этой странице не будет ничего, кроме самих сообщений.

Самое то, что нам и нужно.

Вызываем его к жизни

Теперь, чтобы задействовать наш плагин, мы готовы к установке  bootstrap file.   Это базовый bootstrap file:

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

Надо будет войти в свой аккаунт на WordPress, активировать плагин, тогда вы увидите такую картинку:

An example of the administration page

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

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

Заключение

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

Буду рад ответить на вопросы в комментариях, а также всегда открыт для общения на моём  blog и follow me on Twitter. Поговорим о новостях софта для WordPress и всего, что с этим связано. 

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

Ресурсы

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.