#컴맹 프레스 일기. 공부합니다

어쩌다 보니 요즘 워드프레스에서 이런 저런 기능들을 구현하고 있다. 그런데 워드프레스 API 펑션들은 "현재 출력 중인 포스트의 데이터"를 불러오는 펑션과 "다른 포스트의 데이터"를 불러오는 펑션이 나뉘어져 있(는 듯하다. 이게 무척 헷갈려서 좀 애를 먹었기 때문에, 그간 이용한 펑션들을 대략적으로 정리해볼까 한다.


포스트 아이디에 의해 불러오는 펑션들 :

포스트 퍼머링크 : get_permalink($id)

포스트 타이틀 : get_the_title($id)

포스트 태그 목록 (어레이) : wp_get_post_tags($id, array('fields' => 'names'))

피쳐이미지 URL : wp_get_attachment_url(get_post_thumbnail_id($id))

이런 저런 글 정보 : get_post_field('필드', $id)
- 불러 올 수 있는 필드의 목록은 http://codex.wordpress.org/Database_Description#Table:_wp_posts
그런데 'post_date'가 멀쩡히 불러진 것에 비해, 작성자는 ID로만 불러와진다. 그래서 ↓

the_author_meta('display_name', get_post_field('post_author', $id))
- 그런데 이건 또 변수에 저장할 수 없는, 바로 이름을 출력해버리는 함수. 몰라 나도 이젠..

개별 메타 데이터 값 : get_post_meta($id, '메타 키', true)

메타 데이터 전체 : get_post_custom($id)
- 아웃풋은 array(('key' => 'value0', 'value1', ...), ...)의 형태인 듯? 즉,
$custom = get_post_custom($id);
$customname = $custom['name'][0];

의 형태로 불러와야 함.


wp_get_recent_posts ($args)
당연히, 현재 출력 중인 글과는 무관. $args에서 카테고리를 지정해줄 수 있는데, 카테고리 이름이나 슬럭이 아닌 번호를 키로 이용한다.
array('category' => 8)
불러올 글의 갯수는 'numberposts' 키를 이용. 또한 불러온 자료의 형태는 array가 아니라서, 바로 $recentpost [0]["post_title"] 형태로 뽑아올 수 없고, foreach를 이용해야 하는 듯. foreach가 작동하는 원리 자체는 알 것 같은데 워드프레스 오브젝트에 작동하는 원리는 도무지 잘 이해가 안 돼서. 음.


get_posts ($args)
위의 것과 차이를 잘 모르겠음. 마찬가지로 카테고리 번호에 의해 해당 카테고리의 최근 글 목록을 가져올 수 있다. (글 갯수는 'posts_per_page' 키를 이용한다.) 여기서 foreach로 넘어가면 루프 안으로 들어가는 것 같기도 한데... get_the_id(), get_permalink(), the_title()이 먹히는 것에 비해 다른 펑션은 또 그렇지만도 않은 듯? -_-


사이트 옵션
사이트 옵션에 저장된 것을 부를 때 : get_option ('옵션명')
사이트 옵션에 저장할 때 : update_option ('옵션명', 값/어레이)


기타
플럭인 폴더 경로 : plugin_dir_path( __FILE__ )
- 그런데 xampp로 내 컴퓨터에서 작업할 땐 백슬래시와 슬래시가 충돌해서 제대로 돌아가지 않는다. 지금으로선 그냥 전부 사이트에 올리고 절대경로로 찍어버렸음. -_-

Top 10 플럭인의 글 목록 가져오기 : tptn_pop_posts ()
- 약간 묘한데, tptn_pop_posts (array('limit' => 10, 'daily' => 1, 'daily_range' => 60)) 으로 부르면 링크가 된 글 목록이 그대로 출력돼 버리고, tptn_pop_posts('posts_only=10&limit=10&daily_range=60') 으로 부르면 어레이를 받는다. 60일은 최근 60일간의 인기글 목록을 지정. posts_only와 daily, limit은 수치를 조정해가며 해봤지만 영 모르겠음.


플럭인 등록 관련 펑션들은 봐도 봐도 헷갈리니까 그냥 앞으로 또 만들 일이 있을 때는 이미 쓴 것에서 복붙하기로........ (다만 옵션 메뉴의 위치에 따라 form action의 값이 달라지므로 주의. 아무튼 이것으로 숏코드도 만들고, 사이드바 위젯(백엔드+프론트엔드)도 만들고, footer.php에 끼워져 들어가는 플럭인도 만들고, Settings에서 옵션 컨트롤하는 플럭인도 만들고, 글 작성하는 플럭인도 만들고, CSS 애니메이션과 jQuery 애니메이션까지 건드렸다ㅏㅏㅏㅏ. #인생


덧글

댓글 입력 영역


트위터위젯