wordpress:making_plugin_tutorial
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판다음 판양쪽 다음 판 | ||
wordpress:making_plugin_tutorial [2015/01/22 03:47] – [메타 테이블] changwoo | wordpress:making_plugin_tutorial [2015/01/22 04:38] – [AJAX 액션] changwoo | ||
---|---|---|---|
줄 56: | 줄 56: | ||
이렇게 ~meta 접미사가 붙은 테이블은 그 접미사가 붙지 않은 테이블의 보조 역할을 맡은 테이블이라고 생각할 수 있습니다. 이러한 메타 테이블은 공통적으로 4개의 필드로 구성되어 있음을 알 수 있습니다. | 이렇게 ~meta 접미사가 붙은 테이블은 그 접미사가 붙지 않은 테이블의 보조 역할을 맡은 테이블이라고 생각할 수 있습니다. 이러한 메타 테이블은 공통적으로 4개의 필드로 구성되어 있음을 알 수 있습니다. | ||
- | |||
* meta_id: 각 테이블 내 레코드의 id입니다. | * meta_id: 각 테이블 내 레코드의 id입니다. | ||
* *_id: * 부분은 각 테이블의 상위 개념이 되는 테이블의 id입니다. wp_postmeta이 경우는 post_id, 즉 wp_post.ID를 말하는 것이겠죠. | * *_id: * 부분은 각 테이블의 상위 개념이 되는 테이블의 id입니다. wp_postmeta이 경우는 post_id, 즉 wp_post.ID를 말하는 것이겠죠. | ||
줄 62: | 줄 61: | ||
* meta_value: 테이블에서 확장하고 싶은 데이터의 **값**을 정의하는 필드입니다. | * meta_value: 테이블에서 확장하고 싶은 데이터의 **값**을 정의하는 필드입니다. | ||
- | 이렇게 키/값을 사용자가 임의로 설정할 수 있도록 구성했기 때문에 데이터베이스는 많은 필드를 정의하지 않아도 되고, 임의의 필드에 대해서도 잘 대응할 수 있습니다. | + | 이렇게 키/값을 사용자가 임의로 설정할 수 있도록 구성했기 때문에 데이터베이스는 많은 필드를 정의하지 않아도 되고, 임의의 필드에 대해서도 잘 대응할 수 있습니다. 보통 회원 정보를 담는 wp_users 테이블에는 회원의 이메일 주소는 기본적으로 저장할 수 있도록 해 둡니다. 그러나 그 이외의 여러 프로필, 가령 페이스북의 아이디나 카카오톡의 아이디, 약간 민감하긴 하지만, 회원의 전화번호 등등은 어떤 필드에 저장하두라고 특별히 정해 두지는 않았습니다. 허나 이런 필드가 필요할 경우 어떻게 해야 할까요? wp_users에 필드를 추가할까요? |
- | + | ||
- | 메타 키/값의 예를 들어 보다 부연 설명을 하겠습니다. 보통 회원 정보를 담는 wp_users 테이블에는 회원의 이메일 주소는 기본적으로 저장할 수 있도록 해 둡니다. 그러나 그 이외의 여러 프로필, 가령 페이스북의 아이디나 카카오톡의 아이디, 약간 민감하긴 하지만, 회원의 전화번호 등등은 어떤 필드에 저장하두라고 특별히 정해 두지는 않았습니다. 허나 이런 필드가 필요할 경우 어떻게 해야 할까요? wp_users에 필드를 추가할까요? | + | |
- | 서버 내 설치된 워드프레스를 개발하는 팀끼리 미리 어떠한 이름을 쓰기로 약속을 합니다. 이 이름을 메타 키로 정의합니다. 예를 들어 페이스북, | + | 예를 들어, |
* 페이스북 아이디: facebook_id | * 페이스북 아이디: facebook_id | ||
* 카카오톡 아이디: kakaotalk_id | * 카카오톡 아이디: kakaotalk_id | ||
* 전화번호: | * 전화번호: | ||
- | |||
그러면 각 회원에 대해 테이블 작업을 하지 않고서도 얼마든지 확장된 정보를 저장할 수 있게 됩니다. | 그러면 각 회원에 대해 테이블 작업을 하지 않고서도 얼마든지 확장된 정보를 저장할 수 있게 됩니다. | ||
- | 예를 들어 | + | 다음과 같은 회원이 있다고 하죠. 편의를 위해 2개의 필드만 나열하겠습니다. |
^ID ^user_login | ^ID ^user_login | ||
|1 | |1 | ||
줄 101: | 줄 96: | ||
=== 포스트 타입과 커스텀 포스트 === | === 포스트 타입과 커스텀 포스트 === | ||
- | 워드프레스는 기본적으로는 블로깅 저작 툴로 생각할 수 있습니다. 기본적인 동작은 거의 블로그로써 포스트를 작성하기 위해 있습니다. | + | 워드프레스는 기본적으로는 블로깅 저작 툴로 생각할 수 있습니다. 기본적인 동작은 거의 블로그로써 포스트를 작성하기 위해 있습니다. 그러나 워드프레스는 단순히 블로깅 뿐만 아니라 일반적인 형태의 웹사이트도 잘 지원하도록 확장이 가능합니다. 블로그의 게시물인 ' |
- | 그러나 | + | 워드프레스는 |
- | 워드프레스는 포스트를 작게는 한 블로그의 포스트로써, | + | 이 때 wp_post 내부에서 각 레코드가 어떤 타입인지를 정해주기 위해 ' |
- | + | 워드프레스에서 기본적으로 정의한 포스트 타입으로 post, page 두 개를 들 수 있습니다. post는 말 그대로 블로그 포스트를 위한 타입이며, | |
- | 이 때 wp_post 내부에서 각 레코드가 어떤 타입인지를 정해주기 위해 ' | + | |
- | + | ||
- | 예를 들어 | + | |
예를 들어 어떤 학교의 반에서 학급 신문을 만든다고 합니다. 이 때 워드프레스를 이용해 웹사이트 형태로 구축한다고 합니다. 학급 신문 기사들은 기사 나름대로의 데이터 구조를 가지고 있을 것입니다. 기사 발행 시간이나 수정 시간, 기사를 입력한 사람, 본문, 요약, 헤드라인, | 예를 들어 어떤 학교의 반에서 학급 신문을 만든다고 합니다. 이 때 워드프레스를 이용해 웹사이트 형태로 구축한다고 합니다. 학급 신문 기사들은 기사 나름대로의 데이터 구조를 가지고 있을 것입니다. 기사 발행 시간이나 수정 시간, 기사를 입력한 사람, 본문, 요약, 헤드라인, | ||
- | |||
^필요한 정보 | ^필요한 정보 | ||
|기사 발행 시간 |wp_posts.post_date, | |기사 발행 시간 |wp_posts.post_date, | ||
줄 122: | 줄 113: | ||
|카테고리/ | |카테고리/ | ||
|기사 타입 | |기사 타입 | ||
+ | |||
+ | 별로 힘들이지 않고 새로운 데이터 형태를 구축할 수 있습니다. 그리고 부족한 필드는 메타 필드를 이용하면 됩니다. 별도의 테이블을 쓰지 않고 포스트 타입을 확장하는 것이 멋진 이유는 이렇습니다. 워드프레스의 기본 타입인 post를 확장하는 것이기 때문에 워드프레스 내부에서 우리가 만든 타입은 post와 동등한 대우를 받습니다. 별도의 복잡한 로직을 재생산하지 쓰지 않고 워드프레스가 쓰는 방법 그대로 적용해서 데이터 작업을 할 수 있습니다. 또한 기존의 UI 요소를 완전히 재활용 할 수 있습니다. | ||
이렇게 커스텀 포스트를 만들기 위해서 워드프레스는 일련의 API를 제공하고 있습니다. 더욱 자세한 내용은 [[http:// | 이렇게 커스텀 포스트를 만들기 위해서 워드프레스는 일련의 API를 제공하고 있습니다. 더욱 자세한 내용은 [[http:// | ||
줄 250: | 줄 243: | ||
=== AJAX 액션 === | === AJAX 액션 === | ||
+ | POST 방식으로 값을 전달하면 간단해서 좋기는 한데, | ||
=== Rewrite === | === Rewrite === | ||
=== 로컬라이즈 === | === 로컬라이즈 === |
wordpress/making_plugin_tutorial.txt · 마지막으로 수정됨: 2015/05/01 20:50 저자 changwoo