function hien_thi_bang_tuyen_dung_shortcode() {
// 1. Cấu hình lấy bài viết từ các chuyên mục tuyển dụng
$args = array(
'post_type' => 'post',
'posts_per_page' => 10, // Số lượng đơn tuyển dụng muốn hiển thị
'post_status' => 'publish',
'category_name' => 'chuong-trinh-thuc-tap-sinh, chuong-trinh-ky-su, ky-nang-dac-dinh', // Hãy chắc chắn các slug này đúng
);
$query = new WP_Query($args);
$output = '';
if ($query->have_posts()) {
$output .= '
';
$output .= '
';
$output .= '';
$output .= '';
$output .= '| Tên đơn tuyển dụng | ';
$output .= 'Ngày phỏng vấn | ';
$output .= 'Mức lương | ';
$output .= 'Địa điểm | ';
$output .= '
';
$output .= '';
$output .= '';
while ($query->have_posts()) {
$query->the_post();
$post_id = get_the_ID(); // Lấy ID của bài viết hiện tại để truyền vào get_field
// 2. Lấy dữ liệu ACF và ép buộc truyền ID bài viết để tránh lỗi trống dữ liệu
$ngay_pv = get_field('ngay_phong_van', $post_id);
$muc_luong = get_field('muc_luong', $post_id);
$dia_diem = get_field('dia_diem', $post_id);
// 3. Xử lý hiển thị Ngày phỏng vấn (tương thích mọi định dạng ACF trả về)
if ($ngay_pv) {
// Nếu ACF trả về dạng chuỗi Ymd (ví dụ: 20260730) hoặc bất kỳ định dạng nào khác
$date = date_create($ngay_pv);
if ($date) {
$ngay_pv_text = date_format($date, 'd/m/Y');
} else {
$ngay_pv_text = esc_html($ngay_pv);
}
} else {
$ngay_pv_text = 'Đang cập nhật';
}
// Kiểm tra các trường còn lại
$muc_luong_text = $muc_luong ? esc_html($muc_luong) : 'Đang cập nhật';
$dia_diem_text = $dia_diem ? esc_html($dia_diem) : 'Đang cập nhật';
// 4. Đổ dữ liệu vào hàng của bảng
$output .= '';
$output .= '| ' . esc_html(get_the_title()) . ' | ';
$output .= '' . esc_html($ngay_pv_text) . ' | ';
$output .= '' . esc_html($muc_luong_text) . ' | ';
$output .= '' . esc_html($dia_diem_text) . ' | ';
$output .= '
';
}
$output .= '';
$output .= '
';
$output .= '
';
wp_reset_postdata();
} else {
$output .= 'Hiện tại chưa có đơn tuyển dụng nào mới.
';
}
return $output;
}
add_shortcode('bang_tuyen_dung', 'hien_thi_bang_tuyen_dung_shortcode');