사용자 도구

사이트 도구


hantheme:doosan2014

차이

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

차이 보기로 링크

양쪽 이전 판이전 판
hantheme:doosan2014 [2015/04/02 21:00] – 제거됨 changwoohantheme:doosan2014 [Unknown date] (현재) – 바깥 편집 (Unknown date) 127.0.0.1
줄 1: 줄 1:
 +====== 한테마 2014 두산 이슈 처리 ======
 +===== KK I Like It  플러그인 분석 =====
 +
 +==== 플러그인 동작 설명 ====
 +[[https://wordpress.org/plugins/kk-i-like-it/ |KK I Like It]] 플러그인은 특정  포스트나 페이지에 유저의 선호도를 측정할 수 있는 플러그인입니다. [[http://facebook.com |  페이스북]]의 "좋아요 (Like)"와 유사합니다.
 +
 +==== 데이터 저장 영역 ======
 +플러그인을 설치하면 두 개의 테이블이 생성됩니다.
 +  * wp_kklike
 +  * wp_kklikeuser
 + 
 +이 두 테이블 중  wp_kklikeuser  테이블에만 데이터가 기록되며, wp_kklike는 별도의 용도로 사용되는 것으로 보입니다.
 +
 +===   wp_kklikeuser 테이블 ===
 +  * id: PK입니다.
 +  * idwpuser: wp_users.ID 입니다.
 +  * idlike: "좋아요" 표시를 한 wp_posts.ID입니다.
 +  * ip: 사용자 IPv4
 +  * date: 기록 일시
 +  
 +=== wp_postmeta ===
 +  * meta_key kklike_value: 각 포스트별 "좋아요" 누적도수.
 + 
 +==== 데이터 읽기 인터페이스 ====
 +WP Loop 안에서 "좋아요" 수를 읽기 위해서는 kkLikeRating() 함수를 사용하면 되고, 포스트 내부에서는 쇼트코드를 사용해도 됩니다. 자세한 사항은 플러그인의 문서를 참조하면 됩니다.
 +
 +위에 언급된 플러그인에서 정의된 함수도 결국은 wp_*meta 테이블의 meta_key를 이용하게 되므로 별도로 [[http://codex.wordpress.org/Function_Reference/get_post_meta | get_postmeta()]] 함수 등을 사용해도 됩니다.
 +
 +==== 데이터 쓰기 인터페이스 ====
 +admin-ajax.php 로 다음과 같은 파라미터를 보내는 것으로 처리됩니다
 +  * action: ''add_like'', ''remove_like'' 둘 중 하나를 선택합니다.
 +  * idPost: 해당 포스트 아이디입니다.
 +  * type: "post"로 고정되어 잇습니다.
 +  
 +===== wp favorite post  플러그인 분석 =====
 +
 +==== 플러그인 동작 설명 ====
 +[[https://wordpress.org/plugins/wp-favorite-posts/|WP Favorite Posts]] 플러그인은 특정 포스트, 페이지에 별도의 북마크를 기록할 수 있습니다. 웹브라우저의 일반적인 북마킹이 아닌, 워드프레스 사용자들이 내부의 포스트만 소위 '스크랩'하기 위한 플러그인입니다.
 +
 +==== 데이터 저장 영역 ====
 +이 플러그인은 별도의 데이터베이스 테이블을 생성하지 않습니다.
 +
 +=== wp_usermeta ===
 +meta_key "wpfp_favorites"에 각 사용자의 모든 북마크를 serialized 된 상태로 저장합니다.
 +
 +=== wp_postmeta ===
 +meta_key "wpfp_favorites"에 각 포스트가 모두 몇 번 북마크 되어 있는지 정수로 저장합니다. 누적 회수는 아니며 누군가 어떤 post를 favorite에서 삭제하면 그만큼 감소하게 됩니다.
 +
 +비회원을 위해서도 북마크를 할 수 있도록 제공합니다만, 이 때는 사용자의 브라우저 쿠키에 저장하므로 일관성이 떨어집니다.
 +
 +==== 데이터 읽기 인터페이스 ====
 +해당 포스트가 유저에 의해 북마크 되었는지 판별하기 위해서는 meta key wpfp_favorites를 가져와 처리하면 됩니다.
 +
 +==== 데이터 쓰기 인터페이스 ====
 +아래와 같이 워드프레스 루트 URL로 포스트 ID와 액션을 파라미터로 넘겨주면 됩니다. 
 +  * 추가: ''/?wpfpaction=add&postid=<post_id>''
 +  * 삭제: ''/?wpfpaction=remove&postid=<post_id>''
 +
 +===== What's up? 뷰에서 글 쓰기 인터페이스 =====
 +What's up 메뉴는 [[https://wordpress.org/plugins/dw-question-answer/|DW Question Answer]] 플러그인 기반으로 만들어져 있습니다. 그러므로 해당 플러그인의 동작 방식을 파악할 필요가 있습니다.
 +
 +==== 동작 방식 ====
 +DW Question Answer (이하 dwqa)는 별도의 테이블을 생성하지는 않지만, 질문과 답변 글 관리를 위해 custom post를 정의합니다.
 +
 +  * dwqa-question: 질문 포스트입니다.
 +  * dwqa-answer: 답변 포스트입니다.
 +  
 +질문과 답변의 상하관계를 위해 dwqa-answer 타입 포스트는 메타 키 "_question"를 가집니다. 이 키의 값은 dqwa-question 포스트의 ID입니다.
 +
 +==== 포스트 작성 ====
 +
 +답글, 혹은 질문 작성을 위해서는 [[http://codex.wordpress.org/Function_Reference/wp_insert_post | wp_insert_post()]] 함수를 사용하면 됩니다. 함수의 첫번째 인자로 $post array를 요구하는데, 상당히 많은 항목을 필요로 합니다. 그러나 많은 부분은 기본값으로 두어도 무방합니다
 +
 +^항목                          ^설명                                                               ^
 +| ID                           | 항상 새로운 항목을 작성하게 되므로 이 키의 값은 쓰지 않거나, 아예 설정하지 않습니다.  |
 +| post_content | 포스트 내용입니다. |
 +| post_name    | 포스트 슬러그. [[http://codex.wordpress.org/Function_Reference/sanitize_title | sanitize_title()]]를 이용해 생성합니다. | 
 +| post_title | 사용자가 폼에서 입력한 포스트 제목입니다. |
 +| post_status     | 이 경우 바로 'publish' 되어야 하므로 값은 항상 'publish'로 맞춥니다. |
 +| post_type         | 질문의 경우 dwqa-question, 답변의 경우 dwqa-answer |
 +| post_author   | 기본값은 현재 사용자의 ID이므로, 이 경우라면 별도로 설정하지 않아도 됩니다. |
 +| ping_status    | 기본값으로 으로 둡니다. |
 +| post_parent   | 기본값인 0으로 둡니다. |
 +| menu_order  | 기본값인 0으로 둡니다. |
 +| to_ping              | 기본값으로 둡니다. |
 +| pinged                | 기본값으로으로 둡니다.  |
 +| post_password | 기본값인 공백으로 둡니다. |
 +| guid                         | 이 키는 아예 넣지 않아도 됩니다. |
 +| post_content_filtered | 이 키는 아예 넣지 않아도 됩니다. |
 +| post_excerpt | 이 키는 아예 넣지 않아도 됩니다. |
 +| post_date        | 넣지 않아도 됩니다. |
 +| post_date_gmt | 넣지 않아도 됩니다. |
 +| comment_status | 넣지 않아도 됩니다. |
 +| post_category | 포스트의 카테고리를 지정합니다. array(<category id>, ...)  기본은 empty |
 +| tags_input | 포스트의 태그를 지정합니다. |
 +| tax_input | <code>array( <taxonomy> => <array | string> ) // For custom taxonomies. Default empty. </code>|
 +| page_template | 페이지 경우에 템플릿을 지정하기 위한 메뉴이며, 일반 포스트에서는 사용하지 않습니다. |
 +
 +함수 호출 후 생성된 포스트의 ID를 리턴하므로 답변의 경우 이 아이디를 이용해 _question 메타 키의 값을 별도로 채우면 됩니다.
 +
  
hantheme/doosan2014.1428008420.txt.gz · 마지막으로 수정됨: 2015/04/02 21:00 저자 changwoo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki