- php
function mangboard_all_recent_posts_shortcode($atts) {
global $wpdb;
// 기본값 설정
$atts = shortcode_atts(
array(
'count' => 5, // 출력할 게시물 개수 (기본값 5)
),
$atts,
'mangboard_recent_posts'
);
$post_count = intval($atts['count']);
// 망보드 게시판 게시물 테이블 이름
$table_posts = $wpdb->prefix . "mb_post";
$table_boards = $wpdb->prefix . "mb_board";
// 모든 게시판의 최근 게시물 가져오기 쿼리
$query = $wpdb->prepare("
SELECT p.*, b.board_name
FROM $table_posts p
JOIN $table_boards b ON p.board_id = b.board_id
ORDER BY p.regdate DESC
LIMIT %d
", $post_count);
$recent_posts = $wpdb->get_results($query);
// 게시물 출력 HTML 생성
$output = '<ul class="mangboard-all-recent-posts">';
if (!empty($recent_posts)) {
foreach ($recent_posts as $post) {
$title = esc_html($post->title);
$board_name = esc_html($post->board_name);
$url = esc_url(home_url("/mangboard/view?board_id={$post->board_id}&id={$post->id}"));
$output .= "<li>[{$board_name}] <a href='{$url}'>{$title}</a></li>";
}
} else {
$output .= '<p>No recent posts found.</p>';
}
$output .= '</ul>';
return $output;
}
// 숏코드 등록
add_shortcode('mangboard_recent_posts', 'mangboard_all_recent_posts_shortcode');
2. 코드
[mangboard_recent_posts count="10"]