Меню

api настроек плагина wordpress

Полное руководство по настройке WordPress API, часть 1: введение

Содержание цикла статей «Полное руководство по настройке WordPress API» :

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

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

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

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

И мы хотим это остановить.

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

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

Чтобы успешно пройти все этапы, нам нужно начать с абсолютного нуля. До написания какого-либо кода и разбора примеров, нам необходимо познакомиться с Settings API – узнать что это, и для чего предназначено.

Определение термина «Settings API»


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

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

Почему следует использовать Settings API?

После того, как мы выяснили, что такое Settings API, давайте посмотрим, почему же мы собираемся его использовать вместо собственноручно написанных процедур обработки пользовательского ввода, сериализации (процесса превращения какой-либо структуры данных в последовательность битов) и валидации.

Взаимодействие с ядром WordPress

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

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

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

Бесплатные стандартные возможности


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

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

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

По правде говоря, использование «родных» стилей WordPress не касается напрямую Settings API и относится немного к другой теме, но такой аспект Settings API, как создание страниц меню, предполагает использование нативных стилей WordPress.

Разве нет смысла в том, чтобы придерживаться единого стиля?

Более безопасно, более устойчиво


Используя преимущества встроенных в WordPress функций, вы можете быть уверены, что процедуры сохранения, извлечения и валидации будут проходить без проблем. Settings API предоставляет множество функций, использование которых безопасно для функционирования ядра.

В конце концов, Settings API подчиняется тем же правилам и принципам, что и WordPress API. Также, при обновлении CMS, функции Settings API также будут устаревать. Вам нужно будет какое-то время, чтобы обновить ваш проект ДО того, как несовместимость скажется на его работе.

Что дальше?


Теперь, вы должны иметь общее представление том, что такое Settings API и почему стоит использовать его при создании тем и плагинов.

Читайте также:  настройки для wifi роутера zyxel nbg334w ee

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

  • Меню, секции и закладки;
  • Регистрация настроек секций;
  • Базовые элементы ( input, textarea, select, radio button ,и checkbox );
  • Простой рабочий пример.

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

Данная публикация представляет собой перевод статьи « The Complete Guide To The WordPress Settings API, Part 1: What It Is, Why It Matters » , подготовленной дружной командой проекта Интернет-технологии.ру

источник

Полное руководство по настройке WordPress API, часть 2: секции, поля и настройки

Содержание цикла статей «Полное руководство по настройке WordPress API» :

Когда дело доходит до разработки тем и плагинов ( Themes & Plugins ) под WordPress, то разработчик сталкивается с тем, что есть много различных способов создать меню, опции и функциональность для проверки вводимых данных.

Но тонкость в том, что в действительности есть только один по-настоящему правильный способ сделать это в WordPress – он заключается в использовании Settings API (API настроек).

Данная серия статей как раз нацелена на создание полноценного гида, который бы раскрывал все преимущества использования WordPress Settings API . Таким образом, получается целостное руководство по правильной разработке тем и плагинов.

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

Мы узнаем об основных единицах WordPress – секциях ( sections ), полях ( fields ) и настройках ( settings ) – а также о том, как включить их в панель управления WordPress (Dashboard).

Секции, поля и настройки

До того, как писать какой-либо код, было бы разумно разобраться с тремя основными компонентами WordPress Settings API:

  • Поля – индивидуальные опции, появляющиеся на страницах меню. Поле это минимальная единица. Поля могут быть представлены текстовыми полями (text box), радиокнопками (radio button), чекбоксами (checkbox) и так далее. Значения полей сохраняются в базе данных WordPress;
  • Секции – логически сгруппированные поля. Когда вы работаете с множеством полей, то очень помогает группировка полей по общему признаку. Секции как раз её и предоставляют. Более того, если ваш продукт включает в себя много страниц настроек, то каждая секция может представлять собой ссылку на отдельную страницу или вкладку;
  • Настройки – регистрируются после определения полей и секций. Настройки являются комбинацией полей и секций, которые в них входят.

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

Песочница (Sandbox) для наших настроек

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

Перейдите в папку themes вашей локально установленной копии WordPress, и создайте новую пустую директорию с именем WordPress-Settings-Sandbox (sandbox по-английски – песочница, то есть это место, где безопасно можно играть с нашими настройками, отсюда и такое название).

В ней следует создать следующие файлы:

  • style.css – файл стилей для нашей темы. Включает в себя мета-информацию для нашей темы. Это обязательный файл для WordPress;
  • index.php – стандартный шаблон для нашей темы. Пока что оставим его пустым. Обязательный файл WordPress;
  • functions.php – в этом файле мы будем производить основную часть работы. Мы будем заполнять его по мере продвижения по циклу статей.

Добавьте следующий код в файл style.css :

Далее, добавьте следующие строки в файл index.php :

Заметьте, что разметка, представленная выше, чрезвычайно проста и ее не рекомендуется использовать в качестве основы для разработки своих тем. Она создана специально для этой серии статей и предназначена для изучения Settings API.

Обновите страницу настроек темы в панели управления, и вы увидите, что появилась новая тема под названием « Sandbox ». Активируйте её.


Теперь можно начинать.

Первые шаги в создании опций

Обратите внимание, что для индексного шаблона, представленного выше, мы определили три специфических области контента: заголовок — header , содержимое – content и подвал (футер) — footer . Используя Settings API, давайте создадим секцию « Общие », включающую в себя три поля, каждое из которых относится к одному из определенных выше контейнеров.

Читайте также:  битрикс контент менеджер настройка прав

Но прежде, перечислим порядок наших действий. Он таков:

  • Определение секции, которая будет использоваться для группировки полей;
  • Добавление трех полей – по одному для каждого контейнера – в секцию, определенную выше;
  • Регистрация настроек с помощью WordPress API.

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

Создание секции

Чтобы найти нашу секцию опций « Общие », нам надо использовать функцию add_settings_section из Settings API. Согласно WordPress Codex, функция add_settings_section требует три аргумента:

  • ID – уникальный идентификатор для определяемой секции. Это значение, которое будет использоваться для регистрации каждого поля внутри секции. Можете определить этот идентификатор по своему усмотрению, но я рекомендую делать имя осмысленным для удобства чтения кода;
  • Title – значение, которое будет отображаться вверху административной панели WordPress, когда пользователи будут работать с этой опцией;
  • Callback – имя функции, которая будет выводить содержимое страницы опций на экран. Это может быть использовано для различных целей. В простейшем случае, для предоставления набора инструкций или описаний на вашей странице опций;
  • Page – это значение используется для того, чтобы сообщить WordPress, на какой странице нужно отобразить ваши опции. В следующих статьях цикла, мы будем использовать это для того, чтобы добавить опции на созданные вами страницы. А сейчас, мы добавим их на существующую страницу «Общие настройки» (General Options).

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

Немного о коде, представленном в статьях: не стоит просто копировать и вставлять его. Уделите время его прочтению, посмотрите какие аргументы записаны в представленных API-функциях, а также ознакомьтесь с комментариями, чтобы убедиться, что вы все хорошо поняли:

Конечно, сейчас там не на что смотреть, но пройдите в меню « Опции » (Settings) и нажмите на вкладку « Общие » (General). Прокрутите страницу вниз и увидите новую, созданную нами секцию опций.


Вы можете добавить эту секцию на любую страницу в меню « Настройки » (Settings). В примере выше, мы передали параметр general последним в функцию add_settings_section , но при желании, вы можете вставить туда заголовок любой другой страницы. Вот список страниц в меню « Настройки » (Settings) и соответствующее им уникальное имя:

  • Общие (General), « general »;
  • Написание (Writing), « writing »;
  • Чтение (Reading), « reading »;
  • Обсуждение (Discussion), « discussion »;
  • Медиафайлы (Media), « media »;
  • Приватность (Privacy), « privacy »;
  • Постоянные ссылки (Permalinks), « permalink ».

Добавление полей

Теперь, когда наша секция определена, можно добавить несколько опций. Как вы помните, в нашем индексном файле мы определили три специфических контейнера: header, content и footer .

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

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

  • Сначала, определим три опции – по одной для каждого контейнера;
  • Затем, в качестве элемента интерфейса для переключателя мы используем чекбокс (checkbox).

Сейчас самое время познакомить вас с первым полем. Но для его добавления нам нужно рассмотреть функцию add_settings_field . Она принимает шесть параметров (четыре обязательных, два – нет):

  • ID – идентификатор поля. Будет использоваться, чтобы получать и сохранять значения, полученные из темы. Рекомендуется назвать осмысленным именем для упрощения чтения кода;
  • Title – название поля, которое будет отображаться на странице опций в административной панели. Оно должно быть понятным, чтобы быть легко понятым пользователями;
  • Callback – имя функции, использующейся для вывода;
  • Page – указывает, на какой странице нужно отобразить данную опцию. Можно добавить как на одну из имеющихся, так и на свою собственную страницу;
  • Section – ссылка на секцию, которую вы создали с помощью функции add_settings_section. Это значение совпадает с ID, который вы определили при создании секции. Параметр опциональный;
  • Arguments – Массив аргументов, передаваемый в функцию вызова. Это полезно, если имеется дополнительная информация, которую вы хотите включить в вывод вашего элемента интерфейса. Параметр опциональный.

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

Мы вызовем функцию add_settings_field ниже функции add_settings_section внутри функции инициализации, которую мы создали выше. Выглядит это так:

Далее, определяем callback -функцию для вышеприведенной функции. Она используется для вывода чекбокса и описания в административной панели:

Читайте также:  установка личных параметров при загрузке windows

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

Итак, к текущему моменту ваш файл functions.php должен выглядеть так:

Обновите страницу « Общие настройки » (General Settings). Вы увидите чекбокс с меткой « Контейнер header » и с описанием рядом.


К сожалению, это значение пока не сохраняется в базе данных.

Регистрация наших настроек

Чтобы сохранить значения наших полей в базе данных, нам нужно зарегистрировать их в WordPress. Сделать это относительно просто – нужно просто использовать функцию register_setting . Она принимает три аргумента (два обязательных, один опциональный):

Option Group – имя группы опций. Это может быть как группа, предлагаемая WordPress, так и ID, который мы определили при создании собственной секции. Обязательный аргумент;
Option Name – ID регистрируемого поля. В нашем случае, мы регистрируем одно поле, но если бы мы регистрировали несколько, то потребовалось бы вызвать эту функцию для каждого поля в отдельности. Обязательный аргумент;
Callback – имя функции, которая будет вызвана перед сохранением в базу данных. Этот аргумент выходит за рамки данного цикла статей, однако ближе к концу серии мы его немного коснемся. Аргумент опциональный.

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

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


Достаточно легко, верно?

Добавление оставшихся двух опций

Нам все еще нужно добавить опции для переключения видимости контейнеров content и footer . Они будут аналогичны функциям для контейнера header .

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

Теперь определим callback -функцию:

Далее, определим поле, для отображения контейнера footer :

Создадим callback -функцию для этого поля:

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

Финальная версия файла functions.php должна выглядеть так:

Теперь обновите страницу « Общие настройки » (General Settings) и вы увидите три полноценно работающих чекбокса.

Использование API в теме

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

Чтобы это сделать, нам нужно использовать функцию get_option . Эта функция принимает два аргумента (один обязательный и один опциональный):

  • Option ID – идентификатор поля, для которого вы пытаетесь получить значение. Аргумент обязательный;
  • Default Option – значение, которое будет передано, если функция возвратит пустое значение (например, в случае, если опция не найдена в базе данных). Аргумент опциональный.

Для начала, давайте попробуем переключить видимость контейнера header. В файле index.php , созданном ранее, найдите код содержащий параметр id со значением header . Вот он:

Далее, сделаем вызов функции get_option с использованием условной конструкции if. Если условие равно true (это в случае, если опция была отмечена на странице « Основные настройки » (General Settings)), то элемент будет отображен; в противном случае – он выводиться не будет.

После этого, вновь зайдите на страницу « Общие настройки » (General Settings), и установите опцию для скрытия контейнера header и обновите страницу в браузере. Контейнер header виден не будет.

Далее, просто повторяем этот процесс для двух оставшихся контейнеров. Нам необходимо обернуть контейнеры content и footer условными конструкциями, которые будут сравнивать результат работы функции get_option .

Посетите страницу « Общие настройки » (General Settings), отметьте все три чекбокса и обновите страницу в браузере. Отображением каждого контейнера теперь можно управлять отдельно.

Далее, страницы меню

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

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

Данная публикация представляет собой перевод статьи « The Complete Guide To The WordPress Settings API, Part 2: Sections, Fields, and Settings » , подготовленной дружной командой проекта Интернет-технологии.ру

источник

Добавить комментарий

Adblock
detector