Qual è l'URL per un archivio di categoria?
7 feb 2011, 19:03:36
Visualizzazioni: 20.1K
Voti: 5
Commenti
Mostra i restanti 2 commenti
Tutte le risposte alla domanda
2
1
Non esiste un archivio basato sulla data per una categoria. Le pagine /category/[slug]/
sono già "archivi", nel senso che mostrano vecchi articoli suddivisi su diverse pagine.
Le diverse pagine possono essere accessibili aggiungendo page/2/
, page/3/
, ... all'URL. I tag template per aggiungere questi link sono next_posts_link()
e previous_posts_link()
.
Se vuoi aggiungere un livello basato sulla data ai tuoi archivi di categoria, puoi aggiungere una regola di rewrite per far corrispondere un anno, un mese opzionale e una paginazione opzionale.
add_filter( 'category_rewrite_rules', 'wpse8769_category_rewrite_rules' );
function wpse8769_category_rewrite_rules( $category_rules )
{
global $wp_rewrite;
// Questo potrebbe essere incorretto per permastruct complessi, testato solo in situazioni semplici
$category_permastruct = str_replace( $wp_rewrite->rewritecode, $wp_rewrite->rewritereplace, $wp_rewrite->get_category_permastruct() );
$category_permastruct = preg_replace( '|^/+|', '', $category_permastruct );
$category_extra_rules = array(
// Oppure suddividi questa regola in diverse regole di rewrite, se la regex è troppo complessa
// I feed sono lasciati come esercizio per il lettore
$category_permastruct . '/([0-9]{4})(/([0-9]{1,2}))?(/page/([0-9]+))?/?$' =>
'index.php?category_name=$matches[1]&year=$matches[2]&monthnum=$matches[4]&paged=$matches[6]',
);
return $category_extra_rules + $category_rules;
}

Jan Fabry
30.5K
7 feb 2011 19:06:50
Commenti
Sfortunatamente, non funziona proprio come dovrebbe. Limita correttamente il mese a febbraio, ma il filtro per l'anno non ha effetto, quindi ottengo post da febbraio 2011, febbraio 2010, ecc.

11 feb 2011 13:35:48
Domande correlate
4
risposte