Instal dengan komposer:
composer require felipelavinz/queulat:dev-master
Komposer akan menginstal pada wp-content/mu-plugins/queulat
Jika Anda perlu menginstal pada folder yang berbeda, Anda harus menambahkan sesuatu seperti ini ke komposer proyek Anda.
{
"extra" : {
"installer-paths" : {
"htdocs/wp-content/mu-plugins/{$name}" : [ " type:wordpress-muplugin " ]
}
}
} Di mana htdocs/wp-content/mu-plugins/{$name} Ini adalah jalur ke direktori mu-plugins Anda. Queulat akan diinstal sebagai sub-folder pada folder yang ditentukan.
Queulat menggunakan Composer Autoloader untuk memuat sebagian besar kodenya, jadi Anda perlu memastikan bahwa autoloader disertakan sebelum menginisialisasi Queulat.
Juga, karena mu-plugin yang diinstal pada sub-folder tidak secara otomatis dimuat oleh WordPress, Anda harus secara manual memerlukan file utama.
Anda dapat menyelesaikannya dengan satu file di folder MU-plugins, seperti:
<?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 ' ;Header plugin adalah opsional, tetapi disarankan.
Anda juga dapat menggunakan sesuatu seperti Autoloader Bedrock, yang akan memuat semua mu-plugin yang diinstal pada sub-folder (Anda dapat menyalin file itu pada folder MU-plugin Anda dan secara otomatis akan memuat queulat).
Queulat Ini bertujuan untuk meningkatkan cara kita menciptakan hal-hal untuk WordPress , jadi alih-alih mengubahnya secara fundamental, ia mencoba menggunakan konsep yang akrab untuk membangun hal-hal yang lebih terstruktur untuknya, menggunakan jenis posting khusus , kueri posting khusus , dan objek posting khusus .
Anda dapat menghasilkan ini menggunakan generator plugin tipe pos kustom sendiri, yang tersedia untuk pengguna admin pada menu "Tools".
Setiap plugin tipe pos kustom itu terdiri dari:
Song_Post_Type . Kelas ini mendefinisikan label dan argumen lain untuk mendaftarkan jenis posting di WordPress. Secara default, aktivasi plugin akan menambahkan izin yang diperlukan untuk administrator dan penulisan ulang flush. Anda dapat memperpanjang kelas ini jika Anda perlu mendefinisikan kait khusus untuk fungsi tambahan untuk jenis posting.Song_Post_Query . Anda dapat menggunakan kelas ini untuk membuat kueri basis data baru, menggunakan param default apa pun yang mungkin ingin Anda tentukan untuk jenis konten ini, dan beralih ke hasil menggunakan foreach yang sederhana alih -alih loop WordPress klasik.Song_Post_Object , yang akan dikembalikan pada loop foreach saat menggunakan kueri khusus. Dengan cara ini, Anda dapat menambahkan metode khusus ke kelas ini, yang akan tersedia di loop foreach .Menggunakan Queulat, Anda bisa melakukan sesuatu seperti:
$ 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
Saat ini, cara utama untuk mendefinisikan data meta pada objek pos yang membuat kotak meta; Memperluas kelas abstrak QueulatMetabox yang disertakan.
Kelas Perluasan harus mengimplementasikan metode abstrak: get_fields( ) : array dan sanitize_data( array $data ) : array ; misalnya:
<?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 menangani memperbarui data yang dikirimkan sebagai bidang meta pos, dan memuat nilai yang disimpan pada formulir kotak meta.
Untuk membersihkan data, Anda dapat menggunakan metode apa pun yang Anda sukai. Fungsi queulat_sanitizer() yang direferensikan Ini cara yang cukup sederhana untuk menerapkan panggilan balik ke nilai yang cocok dari input $data . Anda dapat menggunakan * untuk mencocokkan semua properti (menggunakan notasi titik).
Periksa bagian pada (menggunakan formulir queulat) [#menggunakan-Forms] untuk info lebih lanjut tentang bidang formulir yang tersedia atau cara membuat sendiri.
@todo: add general description
@todo: add description for each form field
@todo
@todo
Node_Factory Ini adalah kelas pabrik sederhana yang dapat membuat segala jenis elemen bentuk.
Ini memperlihatkan satu metode make yang dapat membuat instantiasi dan mengkonfigurasi elemen. Metode ini membutuhkan dua parameter:
Secara default, Queulat dikonfigurasi untuk menangani atribut berikut:
Node_Factory sebagai array.Argumen yang tidak didukung oleh elemen dilewati.
Anda dapat memperluas argumen yang didukung menggunakan 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 ; Anda dapat mendaftarkan argumen baru yang digunakan oleh Node_Factory menggunakan metode register_argument .
Metode ini mengambil Node_Factory_Argument_Handler , yang perlu:
$argument (String) yang merupakan nama kunci argumen yang akan Anda tangani.$method (String) yang merupakan nama metode yang akan menerima parameter yang digunakan pada metode pabrik.$call_type (String) yang menentukan bagaimana metode $ akan memperlakukan nilai konfigurasi yang diterima. $call_type bisa menjadi salah satu dari:
Node_Factory::CALL_TYPE_VALUE : Lewati semua argumen sebagai satu array ke pawang. Ini adalah pengaturan default. Contoh: $obj->$method( $args );
Node_Factory::CALL_ARRAY : lulus argumen sebagai parameter individual ke pawang. Contoh: call_user_func_array( [ $obj, $method ], $args );
Node_Factory::CALL_KEY_VALUE : Untuk setiap item dalam argumen, berikan kunci dan nilainya sebagai parameter ke pawang. Contoh:
foreach ( $ args as $ key => $ val ) {
$ obj -> $ method ( $ key , $ val );
} Node_Factory::CALL_TYPE_VALUE_ITEMS : Untuk setiap item dalam argumen, gunakan nilai sebagai parameter untuk pawang. Contoh: array_walk( $args, [ $obj, $method ] );
| Antarmuka terkait | Sifat terkait |
|---|---|
Component_Interface | Node_Trait |
Element_Interface | Childless_Node_Trait |
Node adalah tingkat objek terendah yang harus digunakan dengan bentuk
Gunakan Node_Trait untuk membantu mengimplementasikan antarmuka ini atau Childless_Node_Trait . Secara umum, elemen harus menggunakan yang pertama dan komponen yang terakhir.
Memperluas node_interface dan atribute_interface.
Memperluas node_interface dan atribute_interface. Juga, menambahkan metode get_tag_name .
Memperluas elemen_interface dan properties_interface.
Memperluas html_element_interface dan form_node_interface.
"Atribut" adalah properti khusus yang digunakan oleh objek yang menerapkan antarmuka ini. Mereka diterjemahkan sebagai atribut html key="val"
Gunakan Attributes_Trait untuk membantu mengimplementasikan antarmuka ini.
Objek yang menerapkan antarmuka ini (elemen atau komponen) digunakan sebagai objek bentuk. Mereka memiliki "nama" yang digunakan untuk mengirim data ke server, "nilai" dan "label".
Form_Control_Trait membantu mengimplementasikan getters dan setter "Label" dan "Name" dari antarmuka ini. Getter dan setter "nilai" harus ditentukan oleh komponen khusus Anda sendiri.
Memperluas ArrayAccess, Seekableiterator, dihitung, dapat diserializable.
Paling umum digunakan untuk mendapatkan set anak-anak seperti array dari sebuah node.
Digunakan oleh kontrol seperti kotak centang, radio, pilih dan setiap komponen di mana pengguna disajikan dengan beberapa alternatif yang dapat mereka pilih.
Gunakan Options_Trait untuk membantu mengimplementasikan antarmuka ini.
Properti node (jangan bingung dengan properti objek reguler) dapat menyimpan data sewenang -wenang, seperti pengaturan tampilan, data kesalahan atau status validasi.
Gunakan Properties_Trait untuk membantu mengimplementasikan antarmuka ini.
Antarmuka dasar yang akan digunakan oleh tampilan bentuk.