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?
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
.
Låt oss börja med egenskaperna, eller variablerna, av WP_Query
klass.
$ query
Den här egenskapen lagrar den fråga som skickats till $ wp_query
objekt.
$ query_vars
Den här egenskapen lagrar en associativ grupp av variablerna (och deras värden) för $ query
.
$ 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.
$ queried_object_id
Den här egenskapen lagrar ID för det frågade objektet.
$ inlägg
Den här egenskapen lagrar inlägg som returneras från frågan.
$ POST_COUNT
Den här egenskapen lagrar antalet inlägg för den aktuella frågan.
$ found_posts
Den här egenskapen lagrar antalet inlägg utan BEGRÄNSA
klausul i SQL-frågan.
$ max_num_pages
Den här egenskapen lagrar antalet sidor, det beräknas genom att dividera $ found_posts
av $ posts_per_page
.
$ 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.
$ post
Den här fastigheten lagras, ja det nuvarande inlägget.
$ 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.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.
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!