Почему у стандартного типа записи has_archive=false
6 июн. 2012 г., 14:42:46
Просмотры: 16.3K
Голосов: 6
Комментарии
Все ответы на вопрос
1
1
Поздний ответ.
has_archive применяется только для аргументов rewrite.
Подробнее
Если has_archive установлен в true, то $archive_slug будет установлен в значение аргумента rewrite['slug']. Если затем установлен аргумент rewrite['with_front'], он будет добавлен в начало. Результат этого будет добавлен как правило перезаписи:
add_rewrite_rule( "{$archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
Если feeds установлен в true и has_archive тоже, то вы также получите перезаписанные правила для фидов:
add_rewrite_rule( "{$archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' ); add_rewrite_rule( "{$archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
Тот же принцип применяется для rewrite['pages']:
add_rewrite_rule( "{$archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' );
Итог:
Если у вас не установлен has_archive в true, то любая попытка добавить перезапись для feeds, pages или архивов закончится большим ?.
kaiser
50.8K
14 июн. 2012 г. 14:06:24
Похожие вопросы