Dies ist eine Funktion, die ich eine Weile zurück erstellt. Es tut im Grunde, was Sie tun möchten, aber es ist keine Vorlage. Vielleicht kannst du es anpassen.
<?php
/**
* Displays a condensed list of the posts grouped by month/year.
*
* @param $order The order of the posts. Either 'DESC' or 'ASC', case sensitive.
* @param $date_prefix Whether to prefix the posts with the month/date.
* @param $display Whether to display the results or return it as a String.
*/
function condensed_post_list($order='DESC', $date_prefix=true, $display=true){
global $wpdb;
if(!in_array($order, array('DESC','ASC'))) $order = 'DESC';
$query = "SELECT ID, post_title, post_date FROM $wpdb->posts ".
"WHERE post_type='post' AND post_status = 'publish' ".
"ORDER BY post_date $order";
$results = $wpdb->get_results($query);
ob_start();
$current_month = '';
foreach($results as $result) {
if($current_month != mysql2date('F Y', $result->post_date)) {
if($current_month) echo '</ul>';
$current_month = mysql2date('F Y', $result->post_date);
echo '<h2>'.$current_month.'</h2>';
echo '<ul>';
}
echo '<li>';
echo ($date_prefix ? mysql2date('M j: ', $result->post_date) : '');
echo '<a href="'.get_permalink($result->ID).'">';
echo $result->post_title.'</a></li>';
}
if($current_month) echo '</ul>';
if($display) {
ob_end_flush();
} else {
return ob_get_clean();
}
}
?>
Dank Sie, Ihr Snippet hat mir sehr geholfen und ich es geschafft, die Archiv-Seite zu erstellen. Der einzige Unterschied ist, dass ich statt der Datenbank direkt die Wordpress 'get_posts Funktion verwende. Hier ist das Ergebnis: http://victorhurdugaci.com/archive/ –
Danke! Das war eine große Hilfe - obwohl ich anstelle Ihrer SQL-Abfrage einige native Wordpress-Funktionen verwendet habe, da ich nur Beiträge aus einer einzelnen Kategorie abrufen musste. Ich ersetzte Ihr SQL mit - $ results = query_posts ('post_type = post & post_status = publish & cat = 3'); Große Hilfe! Vielen Dank!! – AshBrad