Установить с помощью композитора:
composer require felipelavinz/queulat:dev-master
Композитор будет установлен на wp-content/mu-plugins/queulat
Если вам нужно установить в другую папку, вы должны добавить что -то подобное в Composer.json вашего проекта:
{
"extra" : {
"installer-paths" : {
"htdocs/wp-content/mu-plugins/{$name}" : [ " type:wordpress-muplugin " ]
}
}
} Где htdocs/wp-content/mu-plugins/{$name} это путь к вашему каталогу Mu-Plugins. Queulat будет установлен в качестве подразделения в указанной папке.
Queulat использует Composer AutoLoader для ленивой загрузки большей части своего кода, поэтому вам необходимо убедиться, что автозагрузчик включен перед инициализацией Queulat.
Кроме того, поскольку Mu-Plugins, установленные на подпадении, не загружаются WordPress автоматически, вы должны вручную требовать основного файла.
Вы можете решить это одним файлом в папке Mu-Plugins, например:
<?php
/**
* Plugin Name: Queulat Loader
* Description: Load Queulat mu-plugin
*/
// Load Composer autoloader (ABSPATH it's the path to wp-load.php).
require_once ABSPATH . ' /../vendor/autoload.php ' ;
// Load Queulat main file.
require_once __DIR__ . ' /queulat/queulat.php ' ;Заголовки плагинов являются дополнительными, но рекомендуются.
Вы также можете использовать что-то вроде автозагрузчика Bedrock, которое будет загружать все муку-плугины, установленные на подразделениях (вы можете просто скопировать этот файл в папке Mu-Plugin, и он автоматически загрузит Queulat).
Queulat он нацелен на улучшение того, как мы создаем вещи для WordPress , поэтому вместо фундаментального их преобразования он пытается использовать знакомые концепции для создания для создания лучших структурированных вещей для него, используя пользовательские типы публикаций , пользовательские сообщения по почте и пользовательские объекты Post .
Вы можете генерировать их, используя свой собственный генератор плагинов Post Type , который доступен для пользователей администратора в меню «Инструменты».
Каждый плагин типа «Пост» он состоит из:
Song_Post_Type . Этот класс определяет этикетки и другие аргументы для регистрации типа поста на WordPress. По умолчанию активация плагина добавит необходимые разрешения для администраторов и промывки переписывается. Вы можете расширить этот класс, если вам нужно определить пользовательские крючки для дополнительной функциональности для типа Post.Song_Post_Query . Вы можете использовать этот класс для создания новых запросов базы данных, используя любые параметры по умолчанию, которые вы, возможно, захотите определить для этого типа контента, и итерация по результатам, используя простую foreach вместо классического цикла WordPress.Song_Post_Object , который будет возвращен в цикле foreach при использовании пользовательского запроса. Таким образом, вы можете добавить любые пользовательские методы в этот класс, которые будут доступны в цикле foreach .Используя Queulat, вы можете сделать что -то вроде:
$ tracklist = new Song_Post_Query ( array (
' tax_query ' => array (
array (
' taxonomy ' => ' albums ' ,
' term ' => ' dark-side-of-the-moon ' ,
' field ' => ' slug '
)
)
) );
foreach ( $ tracklist as $ track ) {
echo $ track -> title ();
echo $ track -> duration ();
echo $ track -> lyrics ();
} @todo
@todo
@todo
В настоящее время основной способ определить метаданные на пост -объектах. Он создает мета -коробки; Расширение включенного класса QueulatMetabox .
Расширенный класс должен реализовать абстрактные методы: get_fields( ) : array и sanitize_data( array $data ) : array ; например:
<?php
use Queulat Metabox ;
use Queulat Forms Node_Factory ;
use Queulat Forms Element Input_Text ;
class Track_Meta_Box extends Metabox {
/**
* Must return the list of form fields to be included on this meta box
*
* @return QueulatFormsNode_Interface[] Array of form fields.
**/
public function get_fields () : array {
return array (
Node_Factory:: make (
Input_Text::class,
array (
' name ' => ' length ' ,
' label ' => ' Track length ' ,
' attributes.class ' => ' regular-text ' ,
' properties.description ' => _x ( ' Track duration, such as: 01:23:45 (1 hour, 23 minutes, 45 seconds) ' , ' length field description ' , ' track_cpt ' ),
)
),
Node_Factory:: class (
Input_Checkbox::class,
array (
' name ' => ' colour ' ,
' label ' => ' Colour ' ,
' options ' => array (
' red ' => ' Red ' ,
' green ' => ' Green ' ,
' blue ' => ' Blue ' ,
' any ' => ' Any colour '
)
)
)
);
}
/**
* Sanitize data from the metabox form.
*
* @param array $data Form data from the meta box (not the full $_POST).
* @return array Sanitized data.
**/
public function sanitize_data ( array $ data ) : array {
return queulat_sanitizer ( $ data , array (
' length ' => array ( ' sanitize_text ' ),
' colour.* ' => array ( ' sanitize_key ' )
) );
}
}Queulat заботится о обновлении представленных данных в качестве поставщиков Meta Fields и загрузке сохраненных значений в форму Meta Box.
Для дезинфекции данных вы можете использовать любой метод, который вы предпочитаете. Ссылка на queulat_sanitizer() . Это довольно простой способ применять обратные вызовы к соответствующим значениям от ввода $data . Вы можете использовать * , чтобы соответствовать всем свойствам (с использованием точечных обозначений).
Проверьте раздел о (с использованием форм Queulat) [#с использованием-кейулат-формами] для получения дополнительной информации о доступных полях форм или о том, как создать свои собственные.
@todo: add general description
@todo: add description for each form field
@todo
@todo
Node_Factory Это простой фабричный класс, который способен создать любой элемент формы.
Он обнажает один метод make , который может создавать экземпляры и настройку элемента. Этот метод принимает два параметра:
По умолчанию Queulat настроен для обработки следующих атрибутов:
Node_Factory в качестве массива.Аргументы, которые не поддерживаются элементом, пропущены.
Вы можете расширить поддерживаемые аргументы с помощью Node_Factory::register_argument() .
<?php
use Queulat Forms Element Div ;
use Queulat Forms Node_Factory ;
use Queulat Forms Element Button ;
$ submit = Node_Factory:: make (
Div::class, array (
' attributes ' => array (
' class ' => ' col-md-4 col-md-offset-8 ' ,
' id ' => ' form-buttons '
),
' text_content ' => ' * required field ' ,
' children ' => array (
Node_Factory:: make (
Button::class,
' attributes ' => array (
' class ' => ' btn-lg ' ,
' type ' => ' submit '
),
' text_content ' => ' Submit '
)
)
);
);
echo $ submit ; Вы можете зарегистрировать новые аргументы, используемые Node_factory, используя метод register_argument .
Этот метод принимает Node_Factory_Argument_Handler , который нуждается:
$argument (строка), который является именем ключа аргумента, с которым вы обрабатываете.$method (строка), который является именем метода, который будет получать параметры, используемые на заводском методе.$call_type (строка), который определяет, как метод $ будет обрабатывать полученные значения конфигурации. $call_type может быть одним из:
Node_Factory::CALL_TYPE_VALUE : передать все аргументы как один массив к обработчику. Это настройка по умолчанию. Пример: $obj->$method( $args );
Node_Factory::CALL_ARRAY : передавать аргументы в качестве отдельных параметров для обработчика. Пример: call_user_func_array( [ $obj, $method ], $args );
Node_Factory::CALL_KEY_VALUE : Для каждого элемента в аргументе передайте его ключ и значение в качестве параметров обработчику. Пример:
foreach ( $ args as $ key => $ val ) {
$ obj -> $ method ( $ key , $ val );
} Node_Factory::CALL_TYPE_VALUE_ITEMS : для каждого элемента в аргументе используйте значение как параметр для обработчика. Пример: array_walk( $args, [ $obj, $method ] );
| Связанные интерфейсы | Связанные черты |
|---|---|
Component_Interface | Node_Trait |
Element_Interface | Childless_Node_Trait |
Узлы являются самым низким уровнем объектов, которые следует использовать с формами
Используйте Node_Trait , чтобы помочь реализовать этот интерфейс или Childless_Node_Trait . В общих чертах, элементы должны использовать первые и компоненты последним.
Расширяет node_interface и attributes_interface.
Расширяет node_interface и attributes_interface. Также добавляет метод get_tag_name .
Расширяет element_interface и Properties_interface.
Extends html_element_interface и form_node_interface.
«Атрибуты» - это специальные свойства, используемые объектами, реализующими этот интерфейс. Они отображаются как html -атрибуты key="val"
Используйте Attributes_Trait , чтобы помочь реализовать этот интерфейс.
Объекты, реализующие этот интерфейс (элементы или компоненты), используются в качестве объектов формы. У них есть «имя», которое используется для отправки данных на сервер, «значение» и «метку».
Form_Control_Trait помогает реализовать «метку» и «имя», сетчики и сеттеры из этого интерфейса. «Значение» и сеттер должны быть определены вашим собственным пользовательским компонентом.
Распространяет Arrayaccess, SeekableIterator, счетный, сериализуемый.
Чаще всего используется для получения массивоподобного набора детей из узла.
Используется элементами управления, такими как флажки, радиоприемники, выбирают и каждый компонент, где пользователю представлено несколько альтернатив, которые они могут выбрать.
Используйте Options_Trait , чтобы помочь реализовать этот интерфейс.
Свойства узла (не путать с регулярными свойствами объекта) могут хранить произвольные данные, такие как настройки представления, данные ошибки или состояние проверки.
Используйте Properties_Trait , чтобы помочь реализовать этот интерфейс.
Базовый интерфейс, который будет использоваться видами формы.