web-dev-qa-db-fra.com

Comment puis-je obtenir l'ID d'une page d'archive?

J'ai une page de commerce pour mes produits qui est traitée comme une page d'archive. Je dois obtenir l'ID de la page d'archive, mais évidemment, si j'utilise $post->ID ou get_the_id(), etc., j'obtiens l'ID du message le plus récent sur cette page.

1
dcp3450

S'il s'agit d'une vraie page, vous pouvez obtenir l'ID de cette page spécifique avec get_queried_object_id(). Cela fonctionne et renverra l'ID sur les pages spécifiques, une seule catégorie, la taxonomie, la balise et les pages auteur où il est utilisé. Les archives de date et heure réelles et la page d'accueil auront pas auront des identifiants

Vous pouvez faire ce qui suit

$page_id = get_queried_object_id();
echo $page_id;

Juste une note très importante, query_posts rompt la requête principale qui rompt la fonctionnalité ci-dessus. Cela conduira à des données incorrectes. Donc, assurez-vous de ne jamais utiliser query_posts

3
Pieter Goosen

Avez-vous vraiment besoin de connaître l'ID, voir la réponse de @ PieterGoosens, ou devez-vous simplement savoir si vous vous trouvez dans l'archive de type publication product? Ce dernier peut être facilement réalisé en utilisant is_post_type_archive() :

if ( is_post_type_archive( 'product' ) ) {
     // code
}
2
Nicolai