Sto costruendo un sito Wordpress con diversi tipi di post personalizzati. Ogni tipo di post è una rivista diversa. Ho anche un metacampo personalizzato per un anno ed una rivista.
Vorrei avere gli URL (usato archive.php):
http://my_site/magazine/name/
http://my_site/magazine_name/year/
http://my_site/magazine_name/year/issue/
L'ho fatto per codice:
function magazine_rewrite_tag() {
add_rewrite_tag('%issue_year%', '([0-9]{4})');
add_rewrite_tag('%issue%', '([0-9])');
}
add_action('init', 'magazine_rewrite_tag', 10, 0);
e:
function magazine_rewrite_rules() {
add_rewrite_rule('^([a-z]+)/([0-9]{4})/([0-9])?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]&issue=$matches[3]', 'top');
add_rewrite_rule('^([a-z]+)/([0-9]{4})?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]', 'top');
}
add_action('init', 'magazine_rewrite_rules');
Ovviamente ho anche una query personalizzata in archive.php. E funziona benissimo.
Ma ora, i miei URL per singoli articoli non funzionano. Per impostazione predefinita, è:
http://my_site/magazine/post-title
ma mostra tutti gli articoli della rivista come url (e ha usato il modello archive.php):
http://my_site/magazine/
Come aggiungere correttamente le regole di riscrittura per singoli post personalizzati? È possibile, vorrei avere URL per singolo post (solo per i tipi di post personalizzati scelti) in questo formato:
http://my_site/magazine/year/issue/post-title
10
è la priorità predefinita . Puoi lasciare entrambi in quel caso ... o provare un numero più alto. (2) Hai controllato le regole di riscrittura risultanti? Assicurati anche di controllare l'ordine di quelle regole mentre vengono elaborate nel loro ordine. Dump$GLOBALS['wp_rewrite']
. (3) Hai aggiuntoquery_vars
che potrebbe essere in conflitto?