Mastering WP_Query Egenskaper och metoder

Välkommen till ännu en del av vår "Mastering WP_Query" -serie. Hur gör vi så långt? Jag hoppas att du njuter av dessa handledning så mycket som vi tycker om att skriva dem.

I denna handledning kommer du att lära dig om egenskaperna och metoderna hos WP_Query klass. Men först tycker jag att det är lämpligt att prata om vilka "egenskaper" och "metoder" som ingår i en klass.

Ska vi?

Vad är egenskaper och metoder, exakt?

I PHP finns det ett sätt att skriva kod i en rengöringsmedel sätt: objektorienterad programmering, eller OOP. Med OOP använder vi "klasser" som ritningar - jag tog ordet från en av klassisk inlägg av Code Tuts +, "Objektorienterad PHP för nybörjare" av Jason Lengstorf:

En klass är till exempel en plan för ett hus. Det definierar husets form på papper, med relationer mellan de olika delarna av huset tydligt definierat och planerat, trots att huset inte existerar.

(Och kom ihåg det WP_Query är en väsentlig klass av WordPress-kärnan.)

När du förstår begreppet PHP-klasser blir "egenskaper" och "metoder" extremt lätta att förstå eftersom orden bara är synonymer för "variabler" och "funktioner". Japp, egenskaper är variabler av en PHP klass och metoder är funktioner i en PHP-klass.

Nu har vi täckt vad de är, låt oss lära känna alla dessa egenskaper och metoder.

Varning: Det skulle inte vara klokt att ändra egenskaperna direkt. Som Codex säger, borde du påverka varandra med dem som använder metoderna för WP_Query.

Egenskaper för WP_Query-klassen

Låt oss börja med egenskaperna, eller variablerna, av WP_Query klass.

Frågesträngen: $ query

Den här egenskapen lagrar den fråga som skickats till $ wp_query objekt.

Array of Query Variables: $ query_vars

Den här egenskapen lagrar en associativ grupp av variablerna (och deras värden) för $ query.

Det Queried Object: $ queried_object

Den här egenskapen lagrar det aktuella queried-objektet, till exempel $ post objekta om det är en postfråga eller $ författare objekt om det är en författarfråga.

ID för det Queried Object: $ queried_object_id

Den här egenskapen lagrar ID för det frågade objektet.

Posterna återkom från frågan: $ inlägg

Den här egenskapen lagrar inlägg som returneras från frågan.

Antal inlägg som visas: $ POST_COUNT

Den här egenskapen lagrar antalet inlägg för den aktuella frågan.

Antal inlägg som returneras från frågan: $ found_posts

Den här egenskapen lagrar antalet inlägg utan BEGRÄNSA klausul i SQL-frågan.

Antalet sidor: $ max_num_pages

Den här egenskapen lagrar antalet sidor, det beräknas genom att dividera $ found_posts av $ posts_per_page.

Indexet för nuvarande inlägg: $ current_post

Den här egenskapen lagrar indexnumret för det aktuella objektet i Loop. Det är till exempel -1 om Loop har just börjat och det ökas av next_post () metod.

Nuvarande inlägg: $ post

Den här fastigheten lagras, ja det nuvarande inlägget.

Villkorliga tagbooleaner: $ Is_ villkor

Följande egenskaper lagras som boolesker, vilket ger information om aktuell inläggs status:

  • $ is_single: Kontrollerar om det är ett enda inlägg i någon posttyp (utom "bilagor" och "sida" posttyper) eller inte.
  • $ is_page: Kontrollera om det är en sida eller inte.
  • $ is_archive: Kontrollerar om det är en arkivsida eller inte.
  • $ is_preview: Kontrollerar om det är en förhandsgranskning eller inte.
  • $ is_date: Kontrollerar om det är en datumbaserad arkivsida eller inte.
  • $ is_year: Kontrollerar om det är en årsbaserad arkivsida eller inte.
  • $ is_month: Kontrollerar om det är en månadsbaserad arkivsida eller inte.
  • $ is_time: Kontrollerar om det är en tidsbaserad (timme, minut eller andra) arkivsida eller inte.
  • $ is_author: Kontrollerar om det är en författares arkivsida eller inte.
  • $ is_category: Kontrollerar om det är en kategori arkivsida eller inte.
  • $ is_tag: Kontrollerar om det är en taggarkivsida eller inte.
  • $ is_tax: Kontrollerar om det är en taxonomisk arkivsida eller inte.
  • $ is_search: Kontrollerar om det är en "sökresultat" sida eller inte.
  • $ is_feed: Kontrollerar om det är ett flöde eller inte.
  • $ is_comment_feed: Kontrollerar om det är en kommentarmatning eller inte.
  • $ is_trackback: Kontrollerar om det är en trackback eller inte.
  • $ is_home: Kontrollerar om det är huvudblogsidan eller inte.
  • $ is_404: Kontrollera om det är en 404-fel sida eller inte.
  • $ is_comments_popup: Kontrollerar om det är ett kommentarfönster eller inte.
  • $ is_admin: Kontrollerar om det är administrationspanelen eller inte.
  • $ is_attachment: Kontrollerar om det är en bilaga eller inte.
  • $ is_singular: Kontrollerar om det är ett enda inlägg av någon posttyp (inklusive "bilagor" och "sida" posttyper) eller inte.
  • $ is_robots: Kontrollerar om det är en fråga för robots.txt fil eller inte.
  • $ is_posts_page: Kontrollerar om det är "Inläggssida" (inställt på sidan "Läsesinställningar" i adminpanelen) eller inte.
  • $ is_paged: Kontrollerar om det är en paginerad fråga och det är inte den första sidan.

Metoder för WP_Query-klassen

Nu när vi är färdiga med egenskaperna, låt oss gå vidare till metoderna (funktionerna) för WP_Query klass.

i det()

Denna metod initierar helt enkelt objektet och ställer in alla egenskaper till NULL, 0 eller FALSK.

parse_query ($ query)

Denna metod använder $ query egenskap för att analysera frågan och fylla i alla andra egenskaper (utom $ inlägg, $ POST_COUNT, $ post och $ current_post).

parse_query_vars ()

Denna metod reparserar frågevariablerna.

få ($ query_var)

Den här metoden hämtar en viss sökvariabel.

set ($ query_var, $ value)

Metoden anger den angivna sökvariabeln till ett visst värde.

& get_posts ()

Denna metod returnerar de inlägg som begärs av frågan och fyller i $ inlägg och $ POST_COUNT egenskaper.

next_post ()

Denna metod ökar $ current_post index och framsteg till nästa post i $ inlägg, återvänder det aktuella postobjektet. (Den här metoden måste användas inom en Loop för att fungera korrekt.)

stolpen()

Denna metod sätter den globala $ post variabel med nästa inläggs data. (Den här metoden måste användas inom en Loop för att fungera korrekt.)

have_posts ()

Denna metod kontrollerar om det finns några inlägg kvar att arbeta på och returnerar FALSK om det inte finns det. (Denna metod måste användas innan en loop att fungera korrekt.)

rewind_posts ()

Denna metod återställer helt enkelt $ current_post och $ post egenskaper.

& fråga ($ query)

Denna metod kallar två av sina syskonmetoder, parse_query () och get_posts (), och returnerar resultatet av get_posts ().

get_queried_object ()

Denna metod returnerar det efterfrågade objektet. (Det sätter $ queried_object om den inte redan är inställd.)

get_queried_object_id ()

Denna metod, som liknar den ovanstående, returnerar det efterfrågade objektets ID ($ queried_object_id).

Snabbtips: Om det finns en ampersand före en metod betyder det att metoden återvänder genom referens.

Wrapping Up för idag

Jag hoppas att jag lyckats klargöra för dig vilka "egenskaper" och "metoder" menar för klasser. Och om du förstod syftet med egenskaperna och metoderna hos WP_Query klass kan jag säga att jag har gjort ett anständigt jobb!

Har du något att lägga till i den här artikeln? Dela dina tankar med oss ​​i avsnittet Kommentarer nedan. Och om du gillade artikeln, glöm inte att dela den med dina vänner.

Vi ses i nästa del av serien!