Ich habe einen benutzerdefinierten Beitragstyp "Nachrichten" auf meiner Wordpress-Site. Ich verwende das Plugin "Erweiterte benutzerdefinierte Felder", um jedem Beitrag Metadaten hinzuzufügen.
Ich möchte eine Reihe von Nachrichten als Archiv erstellen:
[2013]
[January] => 5
[2012]
[January] => 20
[February] => 10
[2011]
[April] => 30
Ich habe es geschafft, dies zum Laufen zu bringen, indem ich:
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;
Ich muss in der Lage sein, mit http://example.com/news/2012/
und auf bestimmte Jahre und Monate zu verlinken http://example.com/news/2012/10/
.
Ich habe versucht, das Plugin Custom Post Type Archives zu verwenden, aber wenn /news/2012/
ich dazu komme, erhalte ich die Standardnachrichtenliste ohne Filter.
Hier ist meine benutzerdefinierte Postleitzahl
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
und verwenden müsste month
?
Posts
Post-Typ bereits für etwas anderes? Dies ist wirklich das, wofür Posts eingerichtet sind - monatliche / jährliche Archive, und "funktionieren" einfach, ohne dass Sie etwas weiter tun müssen. Wenn Sie dasselbe Verhalten für einen benutzerdefinierten Beitragstyp wünschen, müssen Sie leider Ihre eigenen Umschreiberegeln generieren, was nicht so einfach ist.