web-dev-qa-db-fra.com

D'où archive.php obtient-il ses publications?

Mon archive.php commence comme ceci:

        get_header(); ?>
        <?php if( have_posts() ): ?>
            <div id="container" class="portfolio-wrapper">
            <?php while( have_posts() ): the_post(); ?>

Je suis curieux ... où se trouve la WP Requête actuelle? Par exemple, lorsque j'appuie sur une catégorie ou sur un lien d'archive, j'accède à cette page, mais où est la sélection effective?

Plus précisément, je suis curieux de savoir où la première requête est créée (dans quel fichier), car ce qui précède seulement utilise une requête qui a déjà été faite quelque part.

Je pose la question parce que je veux créer une archive personnalisée (en utilisant un shortcode avec les identifiants posts) et je veux décider quelle est la meilleure approche pour le faire :).

1
Axonn

La requête principale est configurée par la classe WP (curieusement peu connue, car il y a rarement une raison de s'y tromper). Cela se produit entre WP charge de finition et chargement du modèle, dans wp-blog-header.php.

Notez que certaines nuances de mise en œuvre:

  • La classe WP fonctionne sur une configuration globale antérieure dans wp-settings.php
  • le global sur lequel il fonctionne est $wp_the_query, qui agit à l'occurrence originale à partir de laquelle le $wp_query plus communément utilisé est généré. Cette implémentation à deux variables est utilisée, entre autres, pour détecter si la requête principale a été modifiée.
1
Rarst