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
Späte Antwort .
has_archive
gilt nur für die Argumente rewrite
.
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' );
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.