作曲家とのインストール:
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を使用してコードのほとんどを怠zyでロードするため、Queulatを初期化する前にAutoloaderが含まれていることを確認する必要があります。
また、サブフォルダーにインストールされたMU-PluginsはWordPressによって自動的にロードされないため、メインファイルを手動で必要とする必要があります。
これは、次のようなMU-Pluginsフォルダーに1つのファイルで解決できます。
<?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のAutoloaderのようなものを使用することもできます。これにより、サブフォルダーにインストールされているすべてのMU-Pluginがロードされます(Mu-Pluginフォルダーにそのファイルをコピーするだけで、Queulatを自動的にロードできます)。
Queulat WordPressのものを作成する方法を改善することを目的としているため、根本的に変換する代わりに、おなじみの概念を使用して、カスタムポストタイプ、カスタムポストクエリ、カスタムポストオブジェクトを使用して、より良い構造化されたものを構築しようとします。
「ツール」メニューで管理者ユーザーが利用できる独自のカスタムポストタイププラグインジェネレーターを使用して、これらを生成できます。
各カスタム投稿タイププラグインは次のとおりです。
Song_Post_Type 。このクラスでは、WordPressの投稿タイプを登録するためのラベルとその他の引数を定義します。デフォルトでは、プラグインのアクティブ化により、管理者に必要な許可が追加され、フラッシュ書き換えが追加されます。投稿タイプの追加機能のためにカスタムフックを定義する必要がある場合は、このクラスを拡張できます。Song_Post_Queryなどのクエリ定義。このクラスを使用して、このタイプのコンテンツに定義する可能性のあるデフォルトのパラメーションを使用して、新しいデータベースクエリを作成し、クラシックなWordPressループの代わりにSimple foreachを使用して結果を反復します。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 Abstractクラスを拡張します。
拡張クラスは抽象的なメソッドを実装する必要があります: 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は、提出されたデータをPost Metaフィールドとして更新し、メタボックスフォームに保存された値を読み込むことになります。
データを消毒するために、好きな方法を使用できます。参照されたqueulat_sanitizer()機能$data入力から一致する値にコールバックを適用する非常に簡単な方法です。 *を使用して、すべてのプロパティを一致させることができます(ドット表記を使用)。
利用可能なフォームフィールドの詳細または独自の作成方法の詳細については、(Queulatフォームを使用)[#Queulat-formsを使用]のセクションを確認してください。
@todo: add general description
@todo: add description for each form field
@todo
@todo
Node_Factoryこれは、あらゆる種類のフォーム要素を作成できるシンプルな工場クラスです。
要素をインスタンス化して構成できる単一のmakeメソッドを公開します。この方法では、2つのパラメーターが必要です。
デフォルトでは、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 (string)。 $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 、このインターフェイスから「ラベル」と「名前」ゲッターとセッターの実装を支援します。 「値」ゲッターとセッターは、独自のカスタムコンポーネントで定義する必要があります。
ArrayAccess、SeekableTiterator、可算、Serializableを拡張します。
最も一般的には、ノードからアレイのような子供のセットを取得するために使用されます。
チェックボックス、ラジオ、選択、およびユーザーに選択できるいくつかの代替品が表示されるすべてのコンポーネントなどのコントロールで使用されます。
Options_Traitを使用して、このインターフェイスの実装を支援します。
ノードプロパティ(通常のオブジェクトプロパティと混同しないでください)は、ビュー設定、エラーデータ、検証状態などの任意のデータを保存できます。
Properties_Traitを使用して、このインターフェイスの実装を支援します。
フォームビューで使用されるベースインターフェイス。