與作曲家安裝:
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 ' ;插件標頭是可選的,但建議使用。
您還可以使用基岩的自動加載器之類的東西,該裝置將加載所有安裝在子折疊器上的MU-Plugins(您可以將該文件複製在Mu-Plugin文件夾上,並且可以自動加載queulat)。
它的目的是改善我們為WordPress創建事物的方式,因此,它並沒有從根本上轉換它,而是嘗試使用熟悉的概念來為其構建更好的結構化事物,使用自定義的帖子類型,自定義郵政查詢和自定義帖子對象。
您可以使用自己的自定義郵政插件生成器生成這些生成,該生成器可用於“工具”菜單上的管理用戶。
每個自定義帖子類型插件都由:
Song_Post_Type帖子類型定義。此類定義了用於在WordPress上註冊帖子類型的標籤和其他參數。默認情況下,插件激活將為管理員添加所需的許可並重寫齊平。如果您需要定義自定義掛鉤以獲得郵政類型的額外功能,則可以擴展此類。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 and 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框表單上加載保存值。
為了消毒數據,您可以使用任何喜歡的方法。引用的queulat_sanitizer()函數這是一種將回調應用於$data輸入的匹配值的非常簡單的方法。您可以使用*匹配所有屬性(使用點表示法)。
檢查(使用Queulat表單)[#使用-Quelat-Forms]的部分,以獲取有關可用表單字段或如何創建自己的表單的更多信息。
@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 ;您可以使用register_argument方法註冊NODE_FACTORY使用的新參數。
此方法採用Node_Factory_Argument_Handler ,它需要:
$argument (字符串),是您將要處理的參數鍵的名稱。$method (字符串),它是將接收工廠方法上使用的參數的方法的名稱。$call_type (字符串),該$ 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。
擴展html_element_interface和form_node_interface。
“屬性”是實現此接口的對象使用的特殊屬性。它們呈現為HTML屬性key="val"
使用Attributes_Trait幫助實現此接口。
實現此接口(元素或組件)的對像用作表單對象。他們有一個“名稱”,用於將數據發送到服務器,“值”和“標籤”。
Form_Control_Trait可以幫助實現此接口中的“標籤”和“名稱”獲取器和設定器。 “值” getter和設置器應由您自己的自定義組件定義。
擴展ArrayAccess,可訪問的材料,可數,可序列化。
最常用的是從節點中獲取類似陣列的孩子。
由控件,收音機,選擇和每個組件等控件使用的每個組件都使用,其中提供了幾種可以選擇的替代方案。
使用Options_Trait幫助實現此接口。
節點屬性(不要與常規對象屬性混淆)可以存儲任意數據,例如查看設置,錯誤數據或驗證狀態。
使用Properties_Trait幫助實現此接口。
基本界面將通過表單視圖使用。