사용자 도구

사이트 도구


wordpress:start

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
wordpress:start [2015/01/21 06:01] – [커스텀 포스트 만들기] 섹션 추가. changwoowordpress:start [2020/03/22 02:53] (현재) – 구텐베르크 리소스 추가 changwoo
줄 1: 줄 1:
 ====== 워드프레스 개발 관련 문서 ====== ====== 워드프레스 개발 관련 문서 ======
-===== 플러그인 만들기 ===== +  * [[.:making_plugin_tutorial | 플러그인 만들기 튜토리얼]] 
-[[.:making_plugin_tutorial | 플러그인 만들기 튜토리얼]]+  * [[.:unit_testing | 워드프레스 유닛 테스팅하기 ]] 
 +  * [[.:settings_api | Settings API ]] 
 +  * [[.:wp_cli_and_my_development_environment | WP CLI와 나의 개발 환경 구성 ]] 
 +  * [[.:php_cs | PhpCS 사용 스터디 ]]
  
-===== 텀 포스트 만들기 ===== +===== 많은 플러그인 관련 리소스 ===== 
-[[.:custom_post | 커텀 포트 만기]] +물론 워드프레스 코덱를 뒤져보면 많은 자료들이 우수수 나오지, 북마크 용도 및 내가 그 내용에 접근하고 한 번쯤은 소화했을 알는 여러 링크를 기록해 본다.
-===== 커스텀 테블 들기 ===== +
-//세나 블루투스 코아 시리얼 CSV 임포트 플그인으로부터//+
  
-워드프레스에서 사용하는 //**WP_List_Table**//을 상속받아 원하는 스타일의 테이블로 만든다. 그런데 WP_List_Table 클래스는 WP 내부용이므로, 언제 그 클래스의 정의가 변경될 지 알 수 없다. 그러므로 차후에도 동작하도록 만드려면 현재의 WP_List_Table 클래스의 사본을 만들고 작업하도록 하는 것이 바람직하다. +  https://codex.wordpress.org/Plugin_Resources 여기를 빼 놓을 수 없다플러그인 개발에 어 필요한 항들이 빼곡히 되어 있어한 번씩 꼭 읽어 봐야 할 것 다. 
- +  * https://wordpress.org/plugins/about/ 이 페이지서 개자를 위한 보다 자한 사항을 볼 수 다. 
- +  * https://wordpress.org/plugins/about/readme.txt 플러그인 미 샘플. 이거 보고 잘 따라할 
-==== Reference ==== +  * https://wordpress.org/plugins/about/validator/미 벨리데 
-  [[http://codex.wordpress.org/Class_Reference/WP_List_Table | Class Reference/WP List Table]] +  * https://wordpress.org/plugins/about/svnSVN 사용에 한 
-  * [[http://wpengineer.com/2426/wp_list_table-a-step-by-step-guide/ | WP_List_Table – a step by step guide ]] +
- +
- +
-===== 테이블에 커스텀 칼럼 및 데이터 추가 ===== +
- +
- +
-===== Settings API 간단 설명 ===== +
- +
-크게 4분야로 나누져 있다. +
-  - 세팅 등록/해제 +
-  - 드, 섹션 +
-  - 폼 렌더링 +
-  - 에러 +
- +
-약 정리한 그림. +
-{{ :wordpress:wp_settings_api.png?nolink |}} +
- +
-{{:wordpress:wp_settings_api.pdf|}} +
- +
-==== 세팅 등록/해제 ==== +
-wp_options 테이블에 값을 넣기 위한 작업과 관련 깊다. +
- +
-=== register_settings === +
-[[http://codex.wordpress.org/Function_Reference/register_setting|register_setting]] 함수는 세팅 목을 시스템에 등록하는 일을 맡는다. +
- +
-  register_setting( $option_group, $option_name, $sanitize_callback ); +
- +
-  * option_group: 아이템은 그룹화될 수 있다. 집합의 름을 입력한다. +
-  * option_name: 아이템이 저장될 값. 키 값이라고 보면 된다. +
-  * sanitize_callback: 값을 세하기 위한 콜백 함수. +
- +
-  unregister_setting( $option_group, $option_name, $sanitize_callback ); +
-   +
-MVC 패턴 관점에서 설명하자면 세팅의 <모델>을 정의하는 작업이라고 보면 된다. +
- +
-==== 필드와 섹션 ==== +
- +
-  add_settings_field( $id, $title, $callback, $page, $section, $args ); +
- +
-  * id: 이 필드의 태그가 가질 id. 이 id는 실제로 html 태그의 id 속성으로도 되어야 한다. 하지만 세팅값을 저장하고 불러오는 데 있어 id가 반드시 필요한 것은 아니다. +
-  * title필드의 름. 직접 html 페이지로 출력된다. +
-  * callback: 콜백 함수. 여기서 반드시 필드를 정의하는 html 태그가 출력되어야 한다. 여기서 반드시 지켜야 할 사항이 있다. +
-    * 콜백 함수는 1의 인자를 받는. 이 인는 이 함수의 마지막 인자인 args이다. +
-    * 첫번째 인자인 'id'는 여기서 정의되는 태그의 id가 되어야 다. +
-    * 태그의 name 속성은 모델에 해당하는 register_setting() 함에서 입력한 option_name과 같은 값이어야 한다. +
-    * 태그의 value는 일반적으로 get_option() 함수를 이용해 직접 데이터베이스로부터 값을 가져온다. +
-  * page페이지 이름워드프레스의 기본 '설정(settings)' 메뉴에는 '일반(general)', '읽기(read)', '쓰기(write)'와 같은 하위 페이지가 기본적으로 지정되어 있다나 반드시 이 값이어야 할 필요는 없고, 이 필드가 속할 룹의, 즉 슬러그의 개념으로 생각하면 된다. +
-  * section: 필드는 섹션의 하위 개념으로 생각하면 된다. 그러므로 상위 개념인 섹션의 존재를 명시하기 위해 이 인자가 사용된다. add_settings_section() 함수의 id 값을 여기에 입력하면 된다. +
-  * args: 콜백 함수에 전달될 인자. 배열이며 기본적으로 'id', 'name', 'value' 등을 지정하여 필의 태그 속성을 정의한다. +
- +
- +
-  add_settings_section( $id, $title, $callback, $page ); +
- +
-  * id: 이 섹션의 태그가 가질 id. add_settings_field() 함수의 id 인자와 같은 역을 한다+
-  * title의 름. 직접 html 페이지로 출력된다.  +
-  * callback콜백 함수. add_settings_field() 함수의 콜백과 같은 역할을 한다. +
-    * 콜백 함수는 1개의 인자를 받는다. 이 인자는 기본적으로 'id'라는 키를 가지고 있다. 이 키의 값은 첫번째 인자인 id와 동일하다. 즉, 태그의 id 속성을 같이 맞춰 주기 위해 자동적으로 제공된다.  +
-  * page: 페이지 이름. add_settings_field() 함수의 페이지와 같은 역할을 한다. +
- +
-MVC 패턴 관점에서 바라보면 이 두 함수는 <컨트롤>의 역할을 맡는다. 어떤 HTML구조가 지정된 세팅을 담당하는지를 정의해 주기 때문이다. +
-==== 폼 렌더링 ==== +
-폼 렌더링을 하기 위해서 프로그래머는 우선 form 태그를 명시적으로 정의해야 한다. 아래는 그 예시이다. +
-<code php> +
-<form method="POST" action="options.php"> +
-<?php settings_fields( 'my-page' ); //pass slug name of page, also referred +
-                                        //to in Settings API as option group name +
-do_settings_sections( 'my-page' ); //pass slug name of page +
-submit_button(); +
-?> +
-</form> +
-</code> +
- +
-  settings_fields( $option_group ); +
- +
-이 함수는 <컨트롤>과 관련이 있다. form 내부의 부가적인 컨트롤, 즉 워드프레스가 부가적으로 사용할 html 태그를 삽입하는 함수이다. 그러므로 반드시 form 태그 안쪽서 불려야 다. +
-  * option_group: register_setting() 함수의 인자인 option_group을 여기에도 입력해야 한다. +
- +
- +
- +
-  do_settings_sections( $page ); +
-  do_settings_fields( $page, $section ); +
-   +
-이 두 함수는 MVC 패턴에서 <뷰>를 담당한다직접적으로 컨트롤들을 화면에 그려 내는 역할을 맡는다. +
-  * page: add_settings_section(), add_settings_field() 함수에서 입력한 page 값을 동일하게 입력하면 된다. +
-  * section: 섹션의 id를 입력하면 된다. +
- +
- +
- +
-==== 에러 ==== +
- +
-  add_settings_error( $setting, $code, $message, $type ) +
-  get_settings_errors( $setting, $sanitize ) +
-  settings_errors( $setting, $sanitize, $hide_on_update )+
  
 +플러그인 제출을 위해서는,
 +  - 코드 깔끔하게, 정상작동할 것.
 +  - 리드미 파일을 제대로 작성할 것.
  
  
 +===== 구텐베르크 관련 개발 리소스들 =====
 +  * [[https://css-tricks.com/managing-wordpress-metadata-in-gutenberg-using-a-sidebar-plugin/#comments | 
 + 구텐베르크 사이드 바에서 메타 박스 편집에 대해]]
 +  * [[https://github.com/alialaa/gutenberg-sidebar|위 포스트가 설명했던 github 리포지터리]]
  
wordpress/start.1421820069.txt.gz · 마지막으로 수정됨: 2015/01/21 06:01 저자 changwoo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki