Jeg er en stor fan av WP_Query-klassen: Jeg bruker den på flere klientnettsteder for å hente og vise data på en personlig måte.
Hvis du vil bruke flere løkker på en side, er den beste måten å kjøre "WP_Query" når du trenger å løkke.
Men det er en ulempe: Når WordPress kjører en loop, sender den spørsmål til databasen, som tar lengre tid og kan bremse nettstedet ditt.
I denne opplæringen vil jeg vise deg hvordan du bruker et spørsmål i mer enn en loop. Du kan gjøre dette med hovedspørringen, eller du kan bruke den samme teknikken med WP_Query.
Vi vil utforske 3 aspekter:
- Lag et barnetema og en malfil.
- Lag en malbit for sløyfeinnholdet.
- Lag løkkene våre.
Men før vi oppdager sammen Hvordan installere en WordPress blogg 7 trinn et Hvordan finne, installere og aktivere en WordPress tema på bloggen din
Så tilbake til hvorfor vi er her.
Hva trenger du
For å følge denne opplæringen, trenger du:
- Fra en WordPress-installasjon for utvikling (lokalt).
- En kodeditor.
- Artikler på nettstedet ditt med flere kategorier tildelt
- det sekstende temaet i WordPress
- Et barnetema på tjue seksten installert og aktivert
Denne teknikken tilpasser seg også din situasjon og din WordPress tema.
Lage et barn tema
Først skal vi lage barnetemaet på tjue seksten. Jeg gjør dette fordi jeg ikke vil endre foreldretemaet.
Oppdag Hvordan du installerer en WordPress barn tema
I "wp-innhold / temaer" -mappen din, oppretter du en ny tom mappe, som du vil kalle "veileder-tema". Du kan senere velge navnet som passer deg.
I denne mappen lager du en fil som heter style.css og legger til følgende kode:
/*
Tema Navn: Tuto Tema
Tema URI: https://blogpascher.com
Beskrivelse: Tema som støtter Opplæring om å kjøre flere løkker mens du spør i databasen bare én gang. Barnetema for tjueen seksten tema.
Forfatter: Hervé
Forfatter URI: https://blogpascher.com
Mal: twentysixteen
Versjon: 1.0
*/
@import url ("../twentysixteen/style.css");
Lagre nå denne filen og aktiver den nye WordPress tema.
Neste trinn er å lage en malfil for kategoriene, det er det vi skal jobbe med.
Lag en kopi av "archive.php"-filen fra WordPress tema "Tjue seksten." Ikke flytt den, men lag en kopi av den. Gi det nytt navn til "category.php".
For å gå lenger, oppdage Hvordan håndtere filer og mapper WordPress
Dette blir nå malfilen for kategoriene på nettstedet ditt.
Oppretter en ny malfil
Det første trinnet er å lage en ny malfil i temaet vårt som vil inneholde en modifisert versjon av loopen "tjue seksten".
La oss også konsultere sammen Slik setter du WordPress-nettstedet ditt i vedlikeholdsmodus
Opprett en undermappe som heter "inkluderer" i undermappen. Og inni, oppretter du en ny fil med navnet "loop-category.php".
Deretter åpner du filen "template-parts / content.php" fra overordnede temamapper (tjue seksten) og finn følgende kode:
" >
', esc_url (get_permalink ())),' '); ?>
<?php
/ * oversettere:% s: Navn på nåværende innlegg * /
the_content (sprintf (
__ ('Fortsett å lese '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (matrise (
'before' => ' '. __ ('Sider:', 'twentysixteen'). ' ',
'after' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Side', 'twentysixteen'). ' %',
'separator' => ' , ',
));
?>
<?php
edit_post_link (
sprintf (
/ * oversettere:% s: Navn på nåværende innlegg * /
__ ('Rediger '% s ' ', 'twentysixteen'),
get_the_title ()
),
' ',
''
);
?>
Kopier denne koden til den nye filen "loop-category.php" med temaet under.
Redigering av malen-delen filen
"Twenty sixteen" loop viser mer enn hva jeg trenger, så jeg skal endre denne koden. Jeg vil bare vise kodebiten og ikke innholdet, så vi skal fjerne innholdet.
Hva er forskjellen mellom H1 og SEO-tittelen på en WordPress-artikkel? Finn ut ved å konsultere denne artikkelen.
I den nye loop-category.php-filen, finn denne koden og slett den:
<div class = "entry-content">
<?php
/ * oversettere:% s: Navn på nåværende innlegg * /
the_content (sprintf (
__ ('Fortsett å lese '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (matrise (
'before' => ' '. __ ('Sider:', 'twentysixteen'). ' ',
'after' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Side', 'twentysixteen'). ' %',
'separator' => ' , ',
));
?>
Det andre trinnet er å erstatte funksjonen "twenty_sixteen_excerpt ()" med funksjonen "the_excerpt ()", fordi versjonen av tyve seksten ikke gir en lenke til hele artikkelen.
Se også Slik viser de siste artiklene i en bestemt kategori
Finn denne linjen:
Erstatt den med denne:
Vi må også gjøre noen endringer i tittelkodene.
Endre linjen i modelldelen:
', esc_url (get_permalink ())),' '); ?>
Rediger H2-taggene for H3:
', esc_url (get_permalink ())),' '); ?>
Registrer din modell. Gå tilbake til kategorien.php-filen din. Vi fortsetter med den.
Lage løkker
Først og fremst skal vi fjerne inkluderingen av koden "tjue seksten" fra "category.php" filen, da vi trenger å bruke den nye filen.
I denne kategorien.php-filen finner du denne koden:
get_template_part ('mal-deler / innhold', get_post_format ());
Og slett.
Så vil vi lage løkkene.
I dette eksemplet vil jeg vise alle innlegg med merkelappen "innhold" ved å bruke den betingede taggen "has_tag ()". Dette betyr at jeg blir nødt til å gå gjennom tre løkker:
- Den første sjekk om spørringen har lagt ut elementer med denne taggen.
- I så fall viser det andre artiklene med denne etiketten.
- En tredje viser artikler uten denne taggen.
Mellom hver loop vil jeg bruke rewind_posts () til å spole tilbake meldinger uten å tilbakestille spørringen: vi jobber alltid med hovedspørringen hver gang.
Den første sløyfen: Verifisering av artikler
I begynnelsen av loopen finner du filen "categorie.php":
while (have_posts ()): the_post ();
Over denne linjen definerer du en ny variabel kalt $ count:
$ Count = 0;
Deretter legger du inn denne koden i den sløyfen:
// sjekk om det er noen innlegg med »-koden
$ tag = 'content';
if (has_tag ($ tag)) {
$ count + = 1;
}
Denne koden sjekker om meldingene har merkelappen "innhold", og legger i så fall 1 til telleren.
Innsiden av løkken vil være lik denne:
// Se etter innlegg i den første sløyfen.
$ Count = 0;
while (have_posts ()): the_post ();
// sjekk om det er noen innlegg med »-koden
$ tag = 'content';
if (has_tag ($ tag)) {
$ count + = 1;
}
EndWhile;
Den andre sløyfen: Gjenopprett artikler med taggen
Det neste trinnet er å løkke for å vise artikler med denne taggen, bare hvis det er noen.
Hvis verdien for $ count for eksempel er større enn 0.
Oppdag også Hvordan tilpasse WordPress dashbordet for en klient
Legg denne betingelsen til i loopen:
hvis ($ count> 0) {
rewind_posts ();
ekko ' Innlegg merket med '. $ tag. ' ';
while (have_posts ()): the_post ();
if (has_tag ($ tag)) {
get_template_part ('inkluderer / sløyfe', 'kategori');
}
// Slutt løkken.
EndWhile;
}
Denne koden verifiserer at antall teller er større enn null, og i så fall, spoler elementene tilbake og kjører loopen igjen. For hver vare kontrollerer den om den eier etiketten vår, og i så fall kaller den den delen av malen vi nettopp opprettet.
Den tredje sløyfen: Se resten av artiklene
Resultatet blir en siste løkke på de gjenværende artiklene. Hvis denne kategorien ikke har en artikkel med innholdskoden, vil den vise alle artiklene i kategorien.
Lær også Hvordan lage en multi-forfatter blogg og la leserne til å legge inn artikler på bloggen din
Legg til denne i den andre sløyfen:
rewind_posts ();
// Second Loop - innlegg ikke med innholdskoden
while (have_posts ()): the_post ();
if (! has_tag ($ tag)) {
get_template_part ('inkluderer / sløyfe', 'kategori');
}
// Slutt løkken.
slutter; ?>
Denne siste koden spoler tilbake artiklene, og kjører deretter sløyfen igjen. Denne gangen sjekker den om en artikkel ikke har "innhold" -koden, og den viser innholdet i "mal-delen".
Vi anbefaler deg også å oppdage Hvordan legge til en artikkel utskrift alternativ til WordPress
Du kan nå teste artikelsiden på bloggen din. Husk at du kan bytte filter. I denne opplæringen brukte vi "innhold" som etikettfilter, men du kan bruke det du ønsker.
Oppdag også noen premium WordPress-plugins
Du kan bruke andre WordPress plugins for å gi et moderne utseende og for å optimalisere håndteringen av bloggen eller nettsiden din.
Vi tilbyr deg her noen premium WordPress-plugins som vil hjelpe deg å gjøre det.
1. Social Wall Addon for UserPro
UserPro kan være mye morsommere med en sosial vegg. Dette er hva Social Wall-utvidelsen bringer. Med Social Wall-pluginet kan du opprette en vegg på nettstedet ditt og gi medlemmene dine en forfriskende måte å samhandle med samfunnet på.
Le WordPress Plugin Social Wall lar brukerne dine: dele meldinger med hverandre, dele bilder, kommentere andres innlegg, brukere kan like eller mislike en melding, de kan velge å vise veggen kun for påloggede brukere eller for alle brukere, administratorer kan slette innlegg eller brukerkommentarer etc.
2. Flipkart Affiliate Plus
Flipkart Affiliate Plus er en WordPress Plugin modul som kobler WordPress-nettstedet ditt til Flipkart Affiliate API.
Ce WordPress Plugin Det gjør det veldig enkelt å importere produktdata fra Flipkart og oppdatere dem direkte på nettstedet ditt. Flipkart Affiliate Plus er den første WordPress-pluginen for den offisielle Flipkart API. Ved å bruke den trenger du ikke bruke en tredjeparts API. Du får dermed fullt utbytte av arbeidet ditt.
3. Handlebar Google Analytics for WooCommerce
Handlingsbar Google Analytics er et WordPress-plugin som lar deg bruke noen av de beste funksjonene i Universal Analytics, inkludert: Enhanced Ecommerce and User ID Tracking. I tillegg støtter dette pluginet anonymisering av IP-adresser, produktrefusjoner, innholdsgruppering, skjemasporing osv.
Ved å bruke denne WordPress-plugin, sparer du tid i integrasjonen av kompleks Google Analytics-kode, slik at du kan fokusere på å håndtere dataene dine.
Hovedtrekkene er: rask og enkel installasjon, tilgang til 9 forbedrede e-handelsrapporter, muligheten til å studere hvordan forskjellige enheter brukes av samme bruker og hvordan kjøp gjøres, evnen til å analysere hvilke produkter som ofte refunderes, til slutt for å iverksette tiltak og mer.
Andre anbefalte ressurser
Vi inviterer deg også til å konsultere ressursene nedenfor for å komme videre i grepet og kontrollen av nettstedet og bloggen din.
konklusjonen
Her! Alt dette for denne ganske tekniske opplæringen. Håper vi har vært eksplisitte om hvordan vi skal bruke WP_Query på WordPress. Føl deg fri til å del tipset med vennene dine på dine sosiale nettverk.
Du vil imidlertid også kunne konsultere våre ressources, hvis du trenger flere elementer for å gjennomføre prosjektene dine med oppretting av nettsteder, ved å konsultere vår guide om WordPress blog oppretting.
Men i mellomtiden, fortell oss om din commentaires og forslag i den dedikerte delen.
...
Hallo
I alle fall, takk for svar, og jeg ønsker deg lykke til
merci
___________ ________ _____ ____________
| Artikkel 1 | | arti 2 | | _A3_ | | |
| __________ | | _______ | _____ | Artikkel 6 |
______________________ | 5 | | |
| _________ 4 _________ | | ____ | | ___________ |
Hei Blair
takk for disse veiledningene parfais,
Jeg vil be om litt hjelp takk.
Jeg opprettet mitt eget wordpres-tema (html / css) og jeg fikk et lite problem jeg vil prøve å trene for deg: Jeg planlegger å lage et nettsted som ligner på msn.com, siden min vil bli delt inn i flere divisjoner ) som er: nyheter, underholdning, helse, livsstil ... etc. det vil si at jeg vil lage en første gruppe med artikler, og en annen gruppe, en tredje ... etc. men vis alle gruppene på samme side, og at hver gruppe tilhører en seksjon (nisje). Jeg lurer på om dette wordpress back office kan administrere innholdet i hver seksjon separat? med wordpress loop // Innleggsinnhold Beklager, ingen innlegg funnet! Jeg får en blanding av ting:
det vil si at min siste artikkel som er skrevet er plassert direkte på den første delen som er nyheter, mens det for eksempel er en artikkel som tilhører livsstil.
Jeg kom over denne siden https://codex.wordpress.org/fr:La_Boucle Jeg tror en del flere sløyfer kan løse mitt problem!
håper du forstår hva jeg prøver å si
På forhånd takk for svaret ditt,
Vennlig hilsen,
Bonjour,
Jeg tror du kompliserer livet ditt for ingenting. Allerede det jeg forstår er at du vil organisere artiklene dine i kategorier (seksjon), og hver seksjon kan tilhøre en nisje, som kan være foreldrekategorier. Ja løkken kan hjelpe deg med å gjøre det, og det er imponerende enkelt.
Mot!
God morgen.
først takk for ditt raske svar. Jeg tror temaet jeg nettopp opprettet ikke lenger er kompatibelt med wordpress, og det er der problemet kommer fra.
faktisk siden kommentarene dine ikke støtter vedlagte bilde, vil jeg forklare deg ved å tegne:
her er en nettside av kategorier
___________ ________ _____ ____________
| Artikkel 1 | | arti 2 | | _A3_ | | | så forestill deg at hver artikkel er
| __________ | | _______ | _____ | Artikkel 6 | representert med en flis; så vi har 6
______________________ | 5 | | | gjenstander (hver flis inneholder bildet
| _________ 4 _________ | | ____ | | ___________ | og tittelen på en bestemt artikkel)
mitt virkelige problem, mister Blair, er at jeg ikke kan pakke inn artiklene mine slik at de kan bevege seg fra firkant 1 til firkant 6, dvs. når jeg legger til et nytt element og Jeg publiserer det, jeg vil at det skal ta plass til artikkel 1 som i alle eksisterende temaer.
- Jeg synes dette er upraktisk siden hvert innlegg (artikkel) har sine egne egenskaper som beliggenhet, høyde, bredde ... osv., Hva synes du da?
selvfølgelig er ideen litt klar med dette diagrammet, ellers hvis jeg ikke har noe imot og du vil hjelpe meg, har du e-posten min (du trenger bare å sende en e-post som inneholder navnet ditt).
Takk igjen for din rethinks
God kveld, i dette tilfellet må du legge til variabler av typen "int". Dermed øker du variabelen hver gang loop-loop, og i henhold til verdien av variabelen kan du endre l visning av artikkelen. For eksempel :
if ($ i == 1) {
// koden din her
} Else if ($ i == 2) {
// slik
}
$ I ++;
Dessverre kan jeg ikke hjelpe deg personlig på dette tidspunktet.