has_archive = false для типа сообщения по умолчанию

Что has_archive типа post по умолчанию, почему свойство has_archive равно FALSE ?

 $type_obj = get_post_type_object('post'); var_dump($type_obj->has_archive); // FALSE 

Поздний ответ .


has_archive применяется только для аргументов rewrite .

В деталях

Если has_archive установлен в true , тогда $archive_slug будет установлен в аргумент rewrite['slug'] . Если тогда будет установлен параметр rewrite['with_front'] arg, то этот будет добавлен. Результат этого будет добавлен как правило перезаписи:

 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 или архивов окажется большой ? ,