날씨위젯
최종편집 2025.01.17 (금)
기사입력시간 2025년 01월 13일 15시 53분 / 글수정 / 글삭제
  1. 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"]
로그인하세요.