, wp_query argumenter: stillinger, sider og post - typer,,,,, 40,,,,,,,, 10,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet beherskelse af wp_query.mastering wp_query: egenskaber og methodswp_query argumenter: kategorier og - mærker, i denne del af denne serie om, wp_query, vil du lære at bruge, wp_query, at søge om stillinger, sider og sædvane efter typer.du kan spørge til specifikke poster og sider eller du kan løbe en forespørgsel til at vende tilbage til stillinger i en eller flere efter typer.,,, en gang til, hvordan argumenter i wp_query,,, før vi begynder, lad os få et hurtigt erindre om, hvordan argumenter arbejde, wp_query,.når du kode, wp_query i din temaer eller plugins, du har brug for til at omfatte fire hovedelementer:,,, argumenterne for søgning ved hjælp af parametre, der er omfattet af denne forelæsning, og forespørgslen selv, loop,, afslutter: lukning, hvis, og mens tags og nulstilling af post - data,,, i praksis vil det se sådan noget som følgende:,, <?php $args = system (//argumenter for deres forespørgsel.); //skik forespørgsel.$forespørgsel = nye wp_query ($args); //se, at vi har spørgsmål resultater.hvis ($forespørgsel - > have_posts()) (//start, skruet i forespørgslen resultater.mens ($forespørgsel - > have_posts()) ($forespørgsel - > the_post(); //indhold af spurgt efter resultater her.}} //genoprette oprindelige post - data.wp_reset_postdata();?>,, hvad siger wordpress argumenter er, hvilke data der skal hente fra databasen, og det er dem, jeg vil dække.vi fokuserer på her, er den første del af kode:,, $args = system (//argumenter for deres forespørgsel.)og, som du kan se, er de argumenter, der er indeholdt i en vifte.du skal lære at kode dem som du arbejder gennem denne forelæsning.,,, kodning, deres argumenter,,, der er en bestemt måde at kode argumenter i det system, der er som følger:,, $args = system ('parameter1 = > "værdi", "parameter2 = >" værdi "," parameter3 = > "værdi"), skal de vedlægge de parametre og værdier i enkelte anførselstegn, anvendelse, = >, mellem dem og adskille dem med et komma.hvis du tager fejl, wordpress kan ikke tilføje alle dine argumenter til forespørgslen, eller du kan få en hvid skærm.,,, være for enkelt stillinger eller sider, lad os starte med de enkleste hypotese: en forespørgsel til en bestemt stilling eller side.,, en forespørgsel til en stilling. find en specifik post (eller et sæt af stillinger), har de to muligheder:,,, p, (int): brug efter id, navn, (, snor,): udnyttelse af post - kugle.,, du kan bruge disse parametre efter type, herunder stillinger, sider, bilag, og - post - typer.ved misligholdelse wordpress vil spørge, om ,'post, efter type og ikke vende sider eller sædvane efter typer, hvis du har lyst til at gøre det, du skal bruge for at tilføje flere argumenter eller anvende et andet argument, som jeg kommer til senere i denne forelæsning.,,, så at vende tilbage til en bestemt stilling, du ville bruge en af disse:,, $args = system (p = > 32), eller:,, $args = system ("navn" = > post_slug), konstateres, at det navn, parameter er efter en som sin argumentation, ikke dens titel., ved navn parameter, gør det lettere at identificere, hvad din forespørgsel vil hente fra databasen, når du overveje din kode på et senere tidspunkt, men der er risiko for, at det virker ikke hvis en af din hjemmeside er brugere ændringer efter kugle.post - id, kan ikke ændres, så det er sikrere.,, en forespørgsel til en side, at søge om en bestemt side du har to muligheder:,,, page_id, (int): brug side.,, pagename, (, snor,): brug side kugle.,, - at køre en søgning henter bare en bestemt side fra databasen, ville du bruge en af disse:,, $args = system ('page_id = > "20"), eller:,, $args = system (' pagename = > page_slug ');,, være til en stilling i en anden form, til en forespørgsel til en stilling i en anden post - typen, herunder en sædvane efter type, ville du også bruge den, post_type parameter.I'll cover this in a bit more detail later in this tutorial, but in brief, to query for a single post in the ,product, custom post type, you'd use this:,,$args = array( 'p' => '46', 'post_type' => 'product' );,,Or to query for an attachment, you'd use:,,$args = array( 'p' => '46', 'post_type' => 'attachment' );,,Querying for Child Pages,,Sometimes you might need to retrieve all pages that are children of a given page, for example if your site has a hierarchical page structure and you want to display a list on each page of that page's children.,,Let's take a look at each of them.,,The first,post_parent,, lets you query for pages which are children of one specific page. ,,So to find all pages that are children af en bestemt side, du ville bruge denne:,,, $args = system ('post_type = > "side", "post_parent = > 2), bemærke, at du skal omfatte, post_type, argument som default efter type, wp_query, ser ud til, at post,.,,, at dette yderligere, er det sådan, du vil bruge det til at finde børn af den aktuelle side:,, $current_page_id = get_the_id(). $args = system (' post_type = >" side "," post_parent = > $current_page_id),,, du kan også bruge dette parameter til at identificere øverste sider, dvs. uden en modervirksomhed:,, $args = system ('post_type = > "side", "post_parent = >' 0 ');,, men hvad hvis du ønsker at identificere børn fra flere sider?du kan gøre det, med det, post_parent__in parameter.dette kræver en række efter id.,, så at sætte spørgsmålstegn ved, for børn af to af dine sider, du ville bruge denne:,, $args = system ('post_type = > "side", "post_parent__in = > system (' 2 ', 4'));,, du kan også udelukke barn sider fra din forespørgsel med, post_parent__not_in parameter:,, $args = system ('post_type = >" side "," post_parent__not_in = > system (' 2 ', 4'), være for flere stillinger, det er også almindeligt at løbe en forespørgsel til enten omfatte eller udelukke flere stillinger.du har to argumenter, som de kan bruge til dette:,,, post__in, (array,): brug efter id.,, post__not_in, (array,): brug efter id.,,, post__in, argument kan anvendes for alle post - typer og tager en række id.så til produktionen, en liste over specifikke stillinger, du ville bruge denne:,, $args = system ('post__in = > system (36, 52, 246, 354));,, note: hvis du bruger dette argument for at hente stillinger, wordpress stadig hent klistrede stillinger, selv om de ikke er på din liste.at udelade dem, du bruger den, ignore_sticky_posts argument:,, $args = system ('post__in = > system (36, 52, 246, 354), ignore_sticky_posts = > "ægte");,,, post__not_in argument fungerer på samme måde som, igen på baggrund af en bred vifte af post - id, men det vil produktionen alt bortset fra stillinger, der er opført på listen.du normalt ville kombinere det med andre argumenter for at undgå outputting enorme liste over stillinger., så at spørgsmål til alle stillinger i det produkt, efter type, men ikke et par:,, $args = system ('post_type = > »produkt«, post__not_in = > system ("36, 52, 246, 354'), så at kombinere dette med en af vores tidligere eksempler, her er, hvad du ville spørge om alle øverste sider undtagen den nuværende:,, $current_page_ids = system (get_the_id()); $args = system (" post_parent = > 0, post__not_in = > $current_page_ids), som vi har set, du kan bruge denne parameter med andre argumenter for at gøre din forespørgsel mere specifikke, så at give et enkelt eksempel, her er, hvad du ville spørge om altdin hjemmeside er sider:,, $args = system ('post_type = >' s), skræddersyet efter typer, være en sædvane efter type er enkel: anvendelse af navn, som du gav efter type ved registreringen af det, ikke, den titel, som er anvendt i den administrative menuer.så lad os sige, at du er registreret deres produkt efter type af register_post_type() som følger:,, funktion register_product() ($args = system ("navn" = > __ ("produkter", "tutsplus"), singular_name = > __ ("produkt", "tutsplus')); register_post_type (produkt, $args)}, værdien du brug for, post_type argument, når en forespørgsel for produkter er ikke »den", eller, i det følgende benævnt »de ", men »product":,, $args = system ('post_type = >' produkt '),, befæstigelsesbeslag, ved misligholdelse, hvis du prøver at køre en søgning for beslag, virker det ikke, som wordpress fastsætter, post_status, beslag, arve, og wp_query, misligholder sine forpligtelser,'post_status = > "offentliggøre, medmindre du angiver andet.så hvis du vil spørge til bilag i, skal omfatte, post_status argument:,, $args = system ('post_type = > »tillæg "," post_status = > "arvet"), og konstaterer, at de også kan anvende enhver, i stedet for arve,.,,,,, wp_query, skabe skik forespørgsler til stillinger og post - typer, er noget, jeg har en masse.som i har set fra de eksempler, der er masser af muligheder:, og brug det til spørgsmål til øverste sider på din hjemmeside. brug det til spørgsmål til stillinger i en bestemt stilling type. brug det til spørgsmål til alle stillinger, bortset fra dem, de nævner. brug det til spørgsmål til alle børn af den aktuelle side. der er mange flere muligheder ved hjælp af de argumenter, der er omfattet her, men det vil give dig en smagsprøve. ,
wp_query argumenter: stillinger, sider og post - typer
Next Page:at wp_query: aktioner og filtre