Гаразд, я отримав робочі приклади для всіх 3 типів запитів. Потрібно було багато експериментів і возитися, щоб змусити їх працювати. Я думаю, Міло добре підштовхує людей до відповіді на власні запитання.
Після незліченних змін і оновлення постійних посилань я зрозумів, що набагато простіше з'ясувати URL-адреси поза add_rewrite_url, і як тільки вони попрацюють, то визначте перезапис. Приклад буття index.php?param=foo&post_type=example_type
.
Ще одна очевидна річ, але додавання її сюди, щоб це могло допомогти комусь іншому. Ви повинні визначити власні правила публікації add_rewrite_rule правила, перш ніж визначити правила підстановки для вашої сторінки / підсторінки. Я витратив на це досить багато часу і думаю, що це головне, що змусило мене не розуміти, чому правила не працюють.
Ось 3 правила, які працюють у всіх моїх потребах. Правило "Сторінка / підсторінка" було об'єднано в єдине.
// 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'
);
Крім того, що я зробив, це налаштувати цикл для додавання декількох спеціальних правил типу публікації. Пам'ятайте, що ви повинні визначити власні правила публікації типу add_rewrite_rule перед тим, як визначити правила підстановки для вашої сторінки / підсторінки.
$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'
);
}
Перепишіть аналізатор , який Майло пройшов уздовж був вельми корисним при спробі краще зрозуміти , як Wordpress запитів для сторінок / повідомлень.
page
тип публікації чи будь-яка сторінка? як щодо батьків / дочірних сторінок в ієрархії?