Tôi có một loại "tin tức" tùy chỉnh trong trang Wordpress của mình. Tôi đang sử dụng plugin Advanced Custom Field để thêm dữ liệu meta vào mỗi bài đăng.
Tôi muốn tạo một loạt các mục tin tức như một kho lưu trữ:
[2013]
[January] => 5
[2012]
[January] => 20
[February] => 10
[2011]
[April] => 30
Tôi quản lý để làm việc này bằng cách sử dụng:
global $wpdb;
$news = $wpdb->get_results(
"SELECT wp_posts.post_date, COUNT(wp_posts.ID) as count
FROM $wpdb->posts
WHERE
wp_posts.post_type = 'news' AND
wp_posts.post_status = 'publish' AND
wp_posts.post_date <= CURDATE() AND
wp_posts.post_date >= DATE_SUB(CURDATE(), INTERVAL 3 YEAR)
GROUP BY YEAR(wp_posts.post_date), MONTH(wp_posts.post_date)
ORDER BY wp_posts.post_date DESC",
ARRAY_A);
$archive = array();
foreach ($news as $post):
$year = date('Y', strtotime($post['post_date']));
$month = date('m', strtotime($post['post_date']));
$month_name = date('F', strtotime($post['post_date']));
$post['url'] = 'NOT SURE ABOUT URL';
$archive[$year][$month_name] = $post;
endforeach;
Tôi cần có thể liên kết với các năm và tháng cụ thể bằng cách sử dụng http://example.com/news/2012/
và http://example.com/news/2012/10/
.
Tôi đã thử sử dụng plugin Lưu trữ loại bài đăng tùy chỉnh nhưng khi tôi xem /news/2012/
danh sách tin tức tiêu chuẩn không có bộ lọc được áp dụng.
Đây là mã loại bài đăng tùy chỉnh của tôi
register_post_type('news',
array(
'label' => 'News',
'description' => 'Latest News',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => true,
'rewrite' => array('slug' => '','with_front' => '1'),
'query_var' => true,
'has_archive' => true,
'menu_position' => 120,
'menu_icon' => /assets/img/icon-custom.png
)
);
year
và month
?
Posts
loại bài đăng tích hợp cho mục đích khác? Đây thực sự là những gì bài viết được thiết lập cho - lưu trữ hàng tháng / hàng năm và sẽ "chỉ hoạt động" mà không phải làm gì thêm. Nếu bạn muốn hành vi tương tự cho một loại bài đăng tùy chỉnh, bạn sẽ không may phải tạo quy tắc viết lại của riêng bạn, điều này không đơn giản.