작곡가로 설치 :
composer require felipelavinz/queulat:dev-master
Composer는 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- 플러그 인은 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의 Autoloader와 같은 것을 사용할 수 있습니다. 이는 하위 폴더에 설치된 모든 MU- 플러그 인을로드 할 수 있습니다 (해당 파일을 MU-Plugin 폴더에 복사하면 자동으로 Queulat을로드 할 수 있습니다).
Queulat 그것은 우리가 WordPress의 물건을 만드는 방식을 개선하는 것을 목표로하므로 근본적으로 변환하는 대신에 친숙한 개념을 사용하여 사용자 정의 게시물 유형 , 사용자 정의 게시물 쿼리 및 사용자 정의 게시물 개체를 사용하여 더 나은 구조화 된 것들을 구축하려고합니다.
"도구"메뉴에서 관리자가 사용할 수있는 고유 한 사용자 정의 게시물 유형 플러그인 생성기를 사용하여 이들을 생성 할 수 있습니다.
각 사용자 정의 게시물 유형 플러그인으로 구성된 다음과 같습니다.
Song_Post_Type . 이 클래스는 WordPress에 게시물 유형을 등록하기위한 레이블 및 기타 인수를 정의합니다. 기본적으로 플러그인 활성화는 관리자 및 플러시 다시 작성에 필요한 투과물을 추가합니다. 게시물 유형의 추가 기능에 대한 사용자 정의 후크를 정의 해야하는 경우이 클래스를 확장 할 수 있습니다.Song_Post_Query 와 같은 쿼리 정의. 이 클래스를 사용 하여이 유형의 컨텐츠에 대해 정의 할 기본 매개 변수를 사용하여 새로운 데이터베이스 쿼리를 만들고 클래식 WordPress 루프 대신 간단한 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 추상 방법 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은 제출 된 데이터를 포스트 메타 필드로 업데이트하고 메타 박스 양식에 저장된 값을로드합니다.
데이터 소독의 경우 원하는 방법을 사용할 수 있습니다. 참조 된 queulat_sanitizer() 함수는 $data 입력에서 일치하는 값에 콜백을 적용하는 매우 간단한 방법입니다. * 사용하여 모든 속성을 일치시킬 수 있습니다 (DOT 표기법 사용).
사용 가능한 양식 필드 또는 직접 만드는 방법에 대한 자세한 내용은 (Queulat Forms 사용) [#사용 -Queulat-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 (string).$method (string).$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 는이 인터페이스에서 "레이블"및 "이름"게터 및 세터를 구현하는 데 도움이됩니다. "value"getter와 setter는 자신의 사용자 정의 구성 요소에 의해 정의되어야합니다.
arrayaccess, seekableiterator, countable, serializable을 확장합니다.
가장 일반적으로 노드에서 배열과 같은 어린이 세트를 얻는 데 사용됩니다.
확인란, 라디오, 선택 및 사용자에게 선택할 수있는 몇 가지 대안이 제공되는 모든 구성 요소와 같은 컨트롤에서 사용됩니다.
Options_Trait 사용 하여이 인터페이스를 구현할 수 있습니다.
노드 속성 (일반 객체 속성과 혼동되지 않음)은보기 설정, 오류 데이터 또는 유효성 검사 상태와 같은 임의의 데이터를 저장할 수 있습니다.
이 인터페이스를 구현하기 위해 Properties_Trait 사용하십시오.
폼 뷰에서 사용할 기본 인터페이스.