Ok, ho ottenuto esempi di lavoro per tutti e 3 i tipi di richieste. Ci sono voluti un sacco di esperimenti e scherzi per farli funzionare. Immagino che Milo sia bravo a spingere le persone a rispondere alle loro stesse domande.
Dopo innumerevoli modifiche e aggiornamento dei permalink, mi sono reso conto che era molto più facile capire gli URL al di fuori di add_rewrite_url e, una volta funzionati, definire la riscrittura. Esempio di essere index.php?param=foo&post_type=example_type.
Un'altra cosa ovvia, ma aggiungerla qui in modo che possa aiutare qualcun altro. Devi definire il tipo di post personalizzato add_rewrite_rule regole PRIMA di definire le regole per i caratteri jolly della pagina / sottopagina. Ho perso un bel po 'di tempo con quello e penso che sia la cosa principale che non mi ha fatto capire perché le regole non hanno funzionato.
Ecco le 3 regole che funzionano per tutte le mie esigenze. La regola Pagina / Sotto-pagina è stata combinata in una sola.
// Custom Post Archive
add_rewrite_rule(
'^foo/example_type/?$',
'index.php?param=foo&post_type=example_type',
'top'
);
// Custom Post Individual
add_rewrite_rule(
'^foo/example_type/([^/]*)/?$',
'index.php?param=foo&example_type=$matches[1]',
'top'
);
// Pages, Top-Level and Sub-Pages
// This MUST be placed in the code AFTER custom post add_rewrite_rule
add_rewrite_rule(
'^foo/(.+)/?$',
'index.php?param=foo&pagename=$matches[1]',
'top'
);
Inoltre quello che ho fatto è impostare un ciclo per aggiungere più regole personalizzate per il tipo di post. Ricorda, devi definire il tipo di post personalizzato add_rewrite_rule regole PRIMA di definire le regole per i caratteri jolly della pagina / sottopagina.
$custom_types = array('example_type', 'projects', 'people');
foreach($custom_types as $type) {
// Custom Post Archive
add_rewrite_rule(
'^foo/'.$type.'/?$',
'index.php?param=foo&post_type='.$type,
'top'
);
// Custom Post Individual
add_rewrite_rule(
'^foo/'.$type.'/([^/]*)/?$',
'index.php?param=foo&'.$type.'=$matches[1]',
'top'
);
}
L' analizzatore di riscrittura che Milo ha passato è stato molto utile quando ha cercato di capire meglio come Wordpress richiede query per pagine / post.
pagetipo di post o solo una pagina? che dire delle pagine padre / figlio nella gerarchia?