has_archive = false für den Standardposttyp

Warum ist die has_archive Eigenschaft für den Standardposttyp gleich FALSE ?

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

Solutions Collecting From Web of "has_archive = false für den Standardposttyp"

Späte Antwort .


has_archive gilt nur für die rewrite Argumente.

Im Detail

Wenn has_archive auf true , wird $archive_slug auf das Argument rewrite['slug'] . Wenn dann ein rewrite['with_front'] arg gesetzt wird, wird dieser vorangestellt. Das Ergebnis wird dann als Rewrite-Regel hinzugefügt:

 add_rewrite_rule( "{$archive_slug}/?$", "index.php?post_type=$post_type", 'top' ); 

Wenn feeds auf “true” und ” has_archive , werden auch Regeln für Feeds umgeschrieben:

 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' ); 

Das gleiche Prinzip gilt für das rewrite['pages'] :

 add_rewrite_rule( "{$archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' ); 

Zusammengefasst:

Wenn has_archive nicht auf ” has_archive gesetzt ist, wird jeder, der versucht, Umschreibungen für feeds , pages oder Archive hinzuzufügen, mit einem großen has_archive enden ? .