it-swarm.com.de

has_archive = false für den Standardbeitragstyp

Warum ist die Eigenschaft has_archive beim Standardtyp post gleich FALSE?

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

Späte Antwort .


has_archive gilt nur für die Argumente rewrite.

Im Detail

Wenn has_archive auf true gesetzt ist, wird der $archive_slug auf das Argument rewrite['slug'] gesetzt. Wenn dann ein rewrite['with_front']-Argument gesetzt ist, wird dieses vorangestellt. Das Ergebnis davon wird dann als Umschreiberegel hinzugefügt:

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

Wenn feeds auf true und has_archive gesetzt sind, erhalten Sie auch neu geschriebene Regeln für Feeds:

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

Dasselbe Prinzip gilt für 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 Sie has_archive nicht auf true gesetzt haben, wird jeder Versuch, Änderungen für feeds, pages oder Archive hinzuzufügen, mit einem großen?enden.

4
kaiser