Maison >Tutoriel CMS >WordPresse >Libérer la puissance de WP_Query : explorer les propriétés et les méthodes

Libérer la puissance de WP_Query : explorer les propriétés et les méthodes

王林
王林original
2023-09-04 08:05:06682parcourir

释放 WP_Query 的力量:探索属性和方法

Bienvenue dans un autre épisode de la série Mastering WP_Query. Comment allons-nous jusqu’à présent ? J'espère que vous apprécierez ces tutoriels autant que nous avons aimé les écrire.

Dans ce tutoriel, vous découvrirez les propriétés et les méthodes de la classe WP_Query. Mais d’abord, j’ai pensé qu’il serait approprié de discuter des « propriétés » et des « méthodes » en cours.

Pouvons-nous ?

Que sont exactement les propriétés et les méthodes ?

En PHP, il existe une manière plus simple d'écrire du code : la programmation orientée objet, ou POO. Pour la POO, nous utilisons des « classes » comme modèles — j'ai tiré ce terme d'un article classique sur Code Tuts+, « PHP orienté objet pour les débutants » de Jason Lengstorf :

Par exemple, une classe est comme un plan de maison. Il définit la forme de la maison sur papier, définissant et planifiant clairement la relation entre les différentes parties de la maison, même si la maison n'existe pas.

(N'oubliez pas que WP_Query est une classe importante au cœur de WordPress.)

Lorsque vous comprenez le concept des classes PHP, les « propriétés » et les « méthodes » deviennent très faciles à comprendre car ces mots ne sont que des synonymes de « variables » et « fonctions ». Oui, les propriétés sont des variables des classes PHP et les méthodes sont des fonctions des classes PHP.

Maintenant que nous avons expliqué ce qu'elles sont, découvrons chaque propriété et méthode.

Attention : Il est déconseillé de modifier directement les propriétés. Comme le dit le Codex, vous devez utiliser les méthodes de WP_Query pour interagir avec eux.

Attributs de la classe WP_Query

Commençons par les propriétés ou variables de la classe WP_Query.

Chaîne de requête : $query

Cette propriété stocke la requête transmise à l'objet $wp_query.

Tableau de variables de requête : $query_vars

Cette propriété stocke un tableau associatif de variables de $query (et leurs valeurs).

Objet de requête : $queried_object

Cet attribut stocke l'objet de la requête en cours, tel que l'objet $post 对象(如果是 post 查询)或 $author (s'il s'agit d'une requête d'auteur).

ID d'objet de requête : $queried_object_id

Cet attribut stocke l'ID de l'objet de requête.

Interrogez les messages renvoyés : $posts

Cette propriété stocke les publications renvoyées par la requête.

Nombre de posts affichés : $post_count

Cet attribut stocke le nombre de publications actuellement interrogées.

Le nombre de posts renvoyés par la requête : $found_posts

Cette propriété stocke le nombre de publications dans la requête SQL qui ne contiennent pas la clause LIMIT.

Nombre de pages : $max_num_pages

Cette propriété stocke le nombre de pages - calculé en divisant $found_posts 除以 $posts_per_page par $posts_per_page.

Index du post actuel : $current_post

Cet attribut stocke le numéro d'index de l'élément actuel dans la boucle. Par exemple, si la boucle vient de démarrer, la méthode -1,并且通过 next_post() est incrémentée.

Message actuel : $post

Cet attribut stocke la publication actuelle.

Valeur booléenne de l'étiquette conditionnelle : $is_{conditional}

Les propriétés suivantes sont stockées sous forme de valeurs booléennes et fournissent des informations sur l'état actuel de la publication :

  • $is_single : Vérifiez s'il s'agit d'une publication unique de n'importe quel type de publication (à l'exception des types de publication "Pièce jointe" et "Page").
  • $is_page : Vérifiez s'il s'agit d'une page.
  • $is_archive : Vérifiez s'il s'agit d'une page d'archive.
  • $is_preview : Vérifiez s'il s'agit d'un aperçu de la publication.
  • $is_date : Vérifiez s'il s'agit d'une page archivée en fonction de la date.
  • $is_year : Vérifiez s'il s'agit d'une page d'archive basée sur l'année.
  • $is_month : Vérifiez s'il s'agit d'une page d'archive basée sur un mois.
  • $is_time : Vérifiez si la page est archivée en fonction du temps (horaire, minute ou seconde).
  • $is_author : Vérifiez s'il s'agit de la page d'archives de l'auteur.
  • $is_category : Vérifiez s'il s'agit d'une page d'archive de catégorie.
  • $is_tag : Vérifiez s'il s'agit d'une page d'archive de balises.
  • $is_tax : Vérifiez s'il s'agit d'une page d'archive de catégorie.
  • $is_search : Vérifiez s'il s'agit d'une page "Résultats de recherche".
  • $is_feed : Vérifiez s'il s'agit d'un flux.
  • $is_comment_feed : Vérifiez s'il s'agit d'un flux de commentaires.
  • $is_trackback : Vérifiez s'il s'agit d'une référence.
  • $is_home : Vérifiez s'il s'agit de la page principale du blog.
  • $is_404 : Vérifiez s'il s'agit d'une page d'erreur 404.
  • $is_comments_popup : Vérifiez s'il s'agit d'une popup de commentaire.
  • $is_admin : Vérifiez s'il s'agit du panneau d'administration.
  • $is_attachment : Vérifiez s'il s'agit d'une pièce jointe.
  • $is_singular : Vérifiez s'il s'agit d'une publication unique de n'importe quel type de publication (y compris les types de publication « Pièce jointe » et « Page »).
  • $is_robots:检查是否是对 robots.txt Requête de fichier.
  • $is_posts_page : Vérifiez s'il s'agit d'une "Page de publication" (définie sur la page "Paramètres de lecture" du panneau d'administration).
  • $is_paged : Vérifiez s'il s'agit d'une requête de pagination et non de la page d'accueil.

Méthodes de la classe WP_Query

Maintenant que nous en avons fini avec les propriétés, passons aux WP_Query méthodes (fonctions) de la classe.

init()

Cette méthode initialise simplement l'objet, en définissant toutes les propriétés sur NULL0FALSE.

parse_query( $query )

Cette méthode utilise $query 属性来解析查询并填充所有其他属性(除了 $posts$post_count$post$current_post).

parse_query_vars()

Cette méthode réanalyse les variables de requête.

get( $query_var )

Cette méthode obtient la variable de requête donnée.

设置( $query_var, $value )

Cette méthode définit la variable de requête donnée sur une valeur spécifique.

&get_posts()

Cette méthode renvoie la publication demandée par la requête et remplit l'attribut $posts$post_count.

next_post()

Cette méthode ajoute l'article suivant dans $current_post 索引并前进到 $posts et renvoie l'objet article actuel. (Cette méthode doit être utilisée dans une boucle pour fonctionner correctement.)

the_post()

Cette méthode définit une variable $post globale en utilisant les données de l'article suivant. (Cette méthode doit être utilisée dans une boucle pour fonctionner correctement.)

have_posts()

Cette méthode vérifie s'il reste des messages à traiter, et sinon, renvoie FALSE. (Cette méthode doit être utilisée avant la boucle pour fonctionner correctement.)

rewind_posts()

Cette méthode réinitialise simplement les propriétés $current_post et $current_post$post.

&query( $query )

Cette méthode appelle ses deux méthodes sœurs : le résultat de parse_query()get_posts(),并返回 get_posts().

get_queried_object()

Cette méthode renvoie l'objet interrogé. (Définissez $queried_object si ce n'est déjà fait.)

get_queried_object_id()

Cette méthode est similaire à la méthode ci-dessus et renvoie l'ID de l'objet de requête ($queried_object_id).

Astuce : Si une méthode est précédée d'un symbole &, cela signifie que la méthode renvoie par référence.

Résumé du jour

J'espère avoir pu vous expliquer clairement ce que signifient « propriétés » et « méthodes » pour les cours. Si vous comprenez le but des propriétés et des méthodes de la classe WP_Query, je peux dire que je fais du bon travail !

Avez-vous quelque chose à ajouter à cet article ? Partagez vos réflexions avec nous dans la section commentaires ci-dessous. Si vous avez aimé cet article, n’oubliez pas de le partager avec vos amis.

Rendez-vous dans la prochaine partie de cette série !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn