안녕하세요~^^
the_content 필터를 활용하면 워드프레스 포스트 내용을 수정할 수 있습니다.
포스트 내용 밑에 포스트 작성자가 쓴 KBoard 게시글을 표시하시려면
워드프레스 관리자 -> 외모(테마 디자인) -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('the_content', 'yourprefix_add_to_content');
function yourprefix_add_to_content($content){
if(is_single()){
$user_id = get_the_author_meta('ID');
$content .= do_shortcode('[kboard_my_content_list id='.$user_id.']');
}
return $content;
}
add_shortcode('kboard_my_content_list', 'kboard_my_content_list');
function kboard_my_content_list($attr){
global $wpdb;
$user_id = (isset($attr['id'])&&$attr['id']) ? $attr['id'] : '';
$html = '';
if($user_id){
$url = new KBUrl();
$results = $wpdb->get_results("SELECT `uid` FROM {$wpdb->prefix}kboard_board_content WHERE `member_uid`='{$user_id}' AND (`status`='' OR `status` IS NULL OR `status`='pending_approval') ORDER BY `date` DESC");
ob_start();
foreach($results as $item){
$content = new KBContent();
$content->initWithUID($item->uid);
?>
<div class="my_kboard_content">
<a href="<?php echo $url->getDocumentRedirect($content->uid)?>">
<?php echo $content->title?>
</a>
</div>
<?php
}
$html = ob_get_clean();
}
return $html;
}
레이아웃을 원하시는 대로 수정하시려면 HTML과 CSS 코드에 대해
어느 정도 알고 계셔야 할 듯합니다.
고맙습니다.
특정 게시판 설정은 어떻게 해야할까요?
예를 들어 아래 URL 보시면 게시판에 포스트 작성자(admin)가 아닌 다른 작성자에 글도 함께 표시됩니다.
<URL 삭제>
안녕하세요.
올려주신 페이지 주소로 확인해보니
이전 댓글에 안내해드린 코드가 아닌
kboard_list_where 필터를 활용해보셔야 할 듯합니다.
기존의 코드 대신 아래의 코드를 활용해보시겠어요?
add_filter('kboard_list_where', 'my_kboard_list_where', 10, 3);
function my_kboard_list_where($where, $board_id, $content_list){
if($board_id == '1'){ // 실제 게시판 id로 적용해주세요.
$user_id = get_the_author_meta('ID');
$where .= " AND `member_uid`='{$user_id}'";
}
return $where;
}
위의 코드에서 $board_id == '1' 부분은 실제 게시판 id로 적용해보세요.
위의 코드가 정상적으로 동작하지 않는다면 해당 포스트 작성자의 id(숫자)를 가져올 수 있는지 확인해보시고
get_the_author_meta('ID') 부분을 수정해보시겠어요?
고맙습니다.