Velkommen til enda en del av vår "Mastering WP_Query" -serie. Hvordan skal vi gjøre så langt? Jeg håper du nyter disse opplæringene så mye som vi nyter å skrive dem.
I denne opplæringen skal du lære om egenskapene og metodene til WP_Query
klasse. Men først synes jeg det er riktig å snakke om hvilke "egenskaper" og "metoder" som er i en klasse.
Skal vi?
I PHP er det en måte å skrive kode på i renere vei: objektorientert programmering, eller OOP. Med OOP bruker vi "klasser" som blueprints-jeg tok ordet fra en av klassiker innlegg av Code Tuts +, "Object-Oriented PHP for Beginners" av Jason Lengstorf:
En klasse, for eksempel, er som et blåkopi for et hus. Det definerer husets form på papir, med forhold mellom de forskjellige delene av huset klart definert og planlagt, selv om huset ikke eksisterer.
(Og husk det WP_Query
er en viktig klasse av WordPress-kjerne.)
Når du forstår begrepet PHP-klasser, blir "egenskaper" og "metoder" ekstremt lett å forstå siden ordene bare er synonymer for "variabler" og "funksjoner". Jepp, eiendommer er variabler av en PHP klasse og fremgangsmåter er funksjoner i en PHP klasse.
Nå har vi dekket hva de er, la oss bli kjent med hver av disse egenskapene og metodene.
Advarsel: Det ville ikke være klokt å endre egenskapene direkte. Som Codex sier, bør du samhandle med dem ved hjelp av metodene til WP_Query
.
La oss begynne med egenskapene, eller variablene, av WP_Query
klasse.
$ query
Denne egenskapen lagrer spørringen som sendes til $ wp_query
gjenstand.
$ query_vars
Denne egenskapen lagrer et assosiativt utvalg av variablene (og deres verdier) for $ query
.
$ queried_object
Denne egenskapen lagrer det aktuelle spørsmålet, for eksempel $ post
objekt hvis det er et innlegg eller det $ forfatter
objekt hvis det er en forfatterforespørsel.
$ queried_object_id
Denne egenskapen lagrer IDen til det forespurte objektet.
$ innlegg
Denne egenskapen lagrer innleggene som returneres fra spørringen.
$ POST_COUNT
Denne egenskapen lagrer antall innlegg for gjeldende søk.
$ found_posts
Denne egenskapen lagrer antall innlegg uten GRENSE
klausul i SQL-spørringen.
$ MAX_NUM_PAGES
Denne egenskapen lagrer antall sider - det beregnes ved å dele $ found_posts
av $ posts_per_page
.
$ current_post
Denne egenskapen lagrer indeksnummeret til gjeldende element i Loop. For eksempel er det -1
hvis Loop har nettopp startet og det økes av next_post ()
metode.
$ post
Denne eiendommen lagrer, nåværende innlegg.
$ En skisse sett betinget
Følgende egenskaper lagres som boolesker, og gir informasjon om gjeldende innleggs status:
$ is_single
: Kontrollerer om det er et enkelt innlegg av en posttype (unntatt "vedlegg" og "side" posttyper) eller ikke.$ is_page
: Kontrollerer om det er en side eller ikke.$ is_archive
: Kontrollerer om det er en arkivside eller ikke.$ is_preview
: Kontrollerer om det er en forhåndsvisning eller ikke.$ is_date
: Kontrollerer om det er en datobasert arkivside eller ikke.$ is_year
: Kontrollerer om det er en årsbasert arkivside eller ikke.$ is_month
: Kontrollerer om det er en månedsbasert arkivside eller ikke.$ is_time
: Kontrollerer om det er en tidsbasert (time, minutt eller andre) arkivside eller ikke.$ is_author
: Kontrollerer om det er en forfatters arkivside eller ikke.$ is_category
: Kontrollerer om det er en kategori arkivside eller ikke.$ is_tag
: Kontrollerer om det er en arkivarkivsside eller ikke.$ is_tax
: Kontrollerer om det er en taksonomiarkivside eller ikke.$ is_search
: Kontrollerer om det er en "søkeresultater" side eller ikke.$ is_feed
: Kontrollerer om det er en feed eller ikke.$ is_comment_feed
: Kontrollerer om det er en kommentar feed eller ikke.$ is_trackback
: Kontrollerer om det er en trackback eller ikke.$ is_home
: Kontrollerer om det er hovedbloggsiden eller ikke.$ is_404
: Kontrollerer om det er en 404 feilside eller ikke.$ is_comments_popup
: Kontrollerer om det er et kommentarer-popup-vindu eller ikke.$ is_admin
: Kontrollerer om det er administrasjonspanelet eller ikke.$ is_attachment
: Kontrollerer om det er et vedlegg eller ikke.$ is_singular
: Kontrollerer om det er et enkelt innlegg av en posttype (inkludert "vedlegg" og "side" posttyper) eller ikke.$ is_robots
: Kontrollerer om det er et spørsmål for robots.txt
fil eller ikke.$ is_posts_page
: Kontrollerer om det er "Innleggsside" (angitt på siden "Leseinnstillinger" i administrasjonspanelet) eller ikke.$ is_paged
: Kontrollerer om det er en paginert spørring, og det er ikke den første siden.Nå som vi er ferdige med egenskapene, la oss gå videre til metodene (funksjonene) til WP_Query
klasse.
i det()
Denne metoden initierer bare objektet, setter alle egenskaper til NULL
, 0
eller FALSK
.
parse_query ($ query)
Denne metoden bruker $ query
egenskap for å analysere spørringen og fylle alle andre egenskaper (unntatt $ innlegg
, $ POST_COUNT
, $ post
og $ current_post
).
parse_query_vars ()
Denne metoden gjengir forespørselsvariablene.
få ($ query_var)
Denne metoden henter en gitt spørringsvariabel.
sett ($ query_var, $ value)
Denne metoden setter den oppgitte spørringsvariabelen til en bestemt verdi.
og get_posts ()
Denne metoden returnerer innleggene forespurt av spørringen og fyller inn $ innlegg
og $ POST_COUNT
eiendommer.
next_post ()
Denne metoden øker $ current_post
indeks og fremskritt til neste innlegg i $ innlegg
, retur gjeldende postobjekt. (Denne metoden må brukes inne i en Loop for å fungere skikkelig.)
posten()
Denne metoden setter global $ post
variabel med neste innleggs data. (Denne metoden må brukes inne i en Loop for å fungere skikkelig.)
have_posts ()
Denne metoden sjekker om det er noen innlegg igjen å jobbe på, og returnerer FALSK
hvis det ikke er det. (Denne metoden må brukes før en loop for å fungere skikkelig.)
rewind_posts ()
Denne metoden tilbakestiller bare $ current_post
og $ post
eiendommer.
& spørring ($ spørring)
Denne metoden kaller to av sine søskenmetoder, parse_query ()
og get_posts ()
, og returnerer resultatet av get_posts ()
.
get_queried_object ()
Denne metoden returnerer det forespurte objektet. (Det setter $ queried_object
hvis den ikke allerede er angitt.)
get_queried_object_id ()
Denne metoden, som ligner den ovenfor, returnerer det forespurte objektets ID ($ queried_object_id
).
Raskt tips: Hvis det er en ampersand før en metode, betyr det at metoden returnerer ved referanse.
Jeg håper jeg klarte å gjøre det klart for deg hva "egenskaper" og "metoder" betyr for klasser. Og hvis du forsto formålet med egenskapene og metodene til WP_Query
klasse, kan jeg si at jeg har gjort en anstendig jobb!
Har du noe å legge til i denne artikkelen? Del dine tanker med oss i kommentarfeltet nedenfor. Og hvis du likte artikkelen, ikke glem å dele den med vennene dine.
Se deg i neste del av serien!