codex에도 들어가보고 했지만
DB에서 데이터를 불러와서 띄우는게 어디서 입력을 해야하는지 도통 모르겠습니다
예를 들어 codex의 예제에서
<?php $user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" ); echo "<p>User count is {$user_count}</p>"; ?>
이걸 보면 디비에서 user의 갯수를 가져온다는 쿼리인것을 알겠는데
function.php에다가 쓰면 저것을 어떻게 해서 가져와야하는 것인지
아니면 그냥 페이지에다가 저 코드를 입력하면
User count is 7
이런 식으로 나와야되는 것인지
도통 감이 안 와서 게시판을 수정해보고 싶은데 건드려보지도 못했습니다.
예를 들어 게시판의 글을들 다 가져오는게
숏코드에서 [kboard id=1] 라는 내용이
select * from wp_kboard_board_content where board_id=1 라는 것을 알겠는데
이 쿼리가 어디서 작동이 되는되서 가져오는지 도통 모르겠습니다
좀 정확한 설명과 이해가 필요한데 그냥 맨땅 헤딩식으로 하니깐 어떤 순서대로 작동하는지 모르겠네요
안녕하세요~^^
워드프레스 액션(Action)과 필터(Filter)에 대해서도 알고 계셔야 할 듯합니다.
페이지에 새로 추가하시려면 올려주신 코드처럼 적용해주시면 됩니다.
KBoard 게시판 플러그인에서 게시글 목록을 불러오는 코드는
FTP로 접속해서 /wp-content/plugins/kboard/class/KBContentList.class.php에
아래의 코드가 있기 때문에 테마의 functions.php 파일에서
select절, from절 where절 등을 변경하실 수 있습니다.
$select = apply_filters('kboard_list_select', "`{$wpdb->prefix}kboard_board_content`.`uid`", $this->board_id, $this);
$from = apply_filters('kboard_list_from', implode(' ', $this->from), $this->board_id, $this);
$where = apply_filters('kboard_list_where', implode(' AND ', $this->where), $this->board_id, $this);
$orderby = apply_filters('kboard_list_orderby', "`{$this->sort}` {$this->order}", $this->board_id, $this);
실제 DB에서 쿼리를 실행하는 코드는 아래의 코드입니다.
$results = $wpdb->get_results("SELECT {$select} FROM {$from} WHERE {$where} ORDER BY {$orderby} LIMIT {$offset},{$this->rpp}");
KBoard의 액션과 필터는 아래의 링크를 참고해보시겠어요?
https://www.cosmosfarm.com/products/kboard/hooks
고맙습니다.