Jeg er en stor fan af WP_Query-klassen: Jeg bruger den på flere klientwebsteder til at hente og vise data på en personlig måde.
Hvis du vil bruge flere sløjfer på en side, er den bedste måde at gøre det på at køre "WP_Query", når du har brug for en loop.
Men der er en ulempe: Hver gang WordPress udfører en løkke, sender den forespørgsler til databasen, som tager længere tid og kan bremse dit websted.
I denne tutorial vil jeg vise dig, hvordan du bruger en forespørgsel til mere end en løkke. Du kan gøre dette med hovedforespørgslen, eller du kan bruge den samme teknik med WP_Query.
Vi vil udforske 3 aspekter:
- Opret et barnetema og en skabelonfil.
- Opret et skabelonstykke til loopindholdet.
- Opret vores løkker.
Men inden vi opdager sammen Sådan installeres en WordPress blog 7 trin et Hvordan at finde, installere og aktivere et WordPress tema på din blog
Så tilbage til, hvorfor vi er her.
Hvad du har brug for
For at følge denne vejledning skal du:
- Fra en WordPress-installation til udvikling (lokalt).
- En kodeditor.
- Artikler på dit websted med flere kategorier tildelt
- WordPress's tyve seksten tema
- Et børnetema på tyve og seksten installeret og aktiveret
Denne teknik tilpasser sig også din situation og din WordPress tema.
Oprettelse af et tema for børn
Først skal vi skabe børnetemaet på sekstenogtyve. Jeg gør dette, fordi jeg ikke ønsker at ændre overordnet tema.
Oplev Sådan installeres et WordPress barn tema
Opret en ny tom mappe i din "wp-indhold / temaer" -mappe, som du vil kalde "tutor-tema". Du kan senere vælge det navn, der passer til dig.
Opret en fil kaldet style.css i denne mappe og tilføj følgende kode:
/*
Tema Navn: Tuto Tema
Tema URI: https://blogpascher.com
Beskrivelse: Tema, der understøtter Vejledning om kørsel af flere sløjfer, mens du spørger i databasen kun én gang. Børnetema til tyve seksten tema.
Forfatter: Hervé
Forfatter URI: https://blogpascher.com
Skabelon: twentysixteen
Version: 1.0
*/
@import url ("../twentysixteen/style.css");
Gem nu denne fil og aktiver din nye WordPress tema.
Det næste trin er at oprette en skabelonfil til kategorierne, det er det, vi arbejder på.
Lav en kopi af filen "archive.php" fra WordPress tema "Seksten tyve." Flyt det ikke, men lav en kopi af det. Omdøb den til "category.php".
For at gå længere, opdage Sådan håndteres filer og mapper WordPress
Dette vil nu være skabelonfilen til kategorierne på dit websted.
Oprettelse af en ny skabelonfil
Det første trin er at oprette en ny skabelonfil i vores tema, der vil indeholde en ændret version af loopen "tyve og seksten".
Lad os også konsultere sammen Sådan placeres dit WordPress-websted i vedligeholdelsestilstand
Opret en undermappe kaldet "inkluderer" i undermappen for underordnet. Og indeni skal du oprette en ny fil med navnet "loop-category.php".
Åbn derefter filen "template-parts / content.php" fra mapperne med overordnede temaer (23) og find følgende kode:
" >
', esc_url (get_permalink ())),' '); ?>
/ * oversættere:% s: Navnet på det aktuelle indlæg * /
the_content (sprintf (
__ ('Fortsæt med at læse '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (array (
'before' => ' '. __ ('Sider:', 'twentysixteen'). ' ',
'efter' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Side', 'twentysixteen'). ' %',
'separator' => ' , ',
));
?>
edit_post_link (
sprintf (
/ * oversættere:% s: Navnet på det aktuelle indlæg * /
__ ('Rediger '% s ' ', 'twentysixteen'),
get_the_title ()
),
' ',
''
);
?>
Kopier denne kode til den nye fil "loop-category.php" i underordnet tema.
Redigering af skabelon-del-filen
"Twenty-sixteen" loop viser mere end hvad jeg har brug for, så jeg redigerer den kode. Jeg vil bare vise uddraget og ikke indholdet, så vi fjerner indholdet.
Hvad er forskellen mellem H1 og SEO-titlen på en WordPress-artikel? Find ud af det ved at læse denne artikel.
I din nye loop-category.php fil, find denne kode og slet den:
<div class = "entry-content">
/ * oversættere:% s: Navnet på det aktuelle indlæg * /
the_content (sprintf (
__ ('Fortsæt med at læse '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (array (
'before' => ' '. __ ('Sider:', 'twentysixteen'). ' ',
'efter' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Side', 'twentysixteen'). ' %',
'separator' => ' , ',
));
?>
Det andet trin er at erstatte funktionen "twenty_sixteen_excerpt ()" med funktionen "the_excerpt ()", fordi versionen af tyve seksten ikke indeholder et link til hele artiklen.
Se også Sådan får du vist de seneste artikler i en bestemt kategori
Find denne linje:
Udskift det med dette:
Vi er også nødt til at foretage nogle ændringer af titelmærkerne.
Skift linjen i modeldelen:
', esc_url (get_permalink ())),' '); ?>
Rediger H2-tags for H3:
', esc_url (get_permalink ())),' '); ?>
Registrer din model. Gå derefter tilbage til din Category.php-fil, vi fortsætter med den.
Oprettelse af løkker
Først og fremmest skal vi fjerne inkluderingen af koden til "tyve seksten" fra vores "category.php" fil, da vi bliver nødt til at bruge den nye fil.
Find din kode i din Category.php-fil:
get_template_part ('skabelon-dele / indhold', get_post_format ());
Og slet.
Så opretter vi sløjferne.
I dette eksempel vil jeg vise alle indlæg med tagget "indhold" ved hjælp af det betingede tag "has_tag ()". Dette betyder, at jeg bliver nødt til at gennemgå tre sløjfer:
- Den første kontrol, hvis forespørgslen har indsendt poster med dette tag.
- I så fald viser det andet artiklerne med denne etiket.
- En tredje viser artikler uden dette tag.
Mellem hver løkke vil jeg bruge rewind_posts () til at spole tilbage beskeder uden at nulstille forespørgslen: vi arbejder altid med hovedforespørgslen hver gang.
Den første løkke: Bekræftelse af artikler
I starten af din "kategori.php" -fil finder du begyndelsen på løkken:
mens (have_posts ()): the_post ();
Over denne linje skal du definere en ny variabel kaldet $ count:
$ count = 0;
Derefter skal du tilføje denne kode inden i den løkke:
// kontroller, om der er nogen indlæg med »-tagget
$ tag = 'indhold';
if (has_tag ($ tag)) {
$ count + = 1;
}
Denne kode kontrollerer, om meddelelserne har etiketten "indhold", og tilføjer i så fald 1 til tælleren.
Indersiden af løkken vil være den samme:
// Kontroller for indlæg i den første løkke.
$ count = 0;
mens (have_posts ()): the_post ();
// kontroller, om der er nogen indlæg med »-tagget
$ tag = 'indhold';
if (has_tag ($ tag)) {
$ count + = 1;
}
EndWhile;
Den anden løkke: Gendan artikler med tagget
Det næste trin er at sløjfe for at vise artikler med dette mærke, kun hvis der er nogen.
For eksempel, hvis værdien af $ count er større end 0.
Opdag også Sådan tilpasse WordPress dashboard for en klient
Føj denne betingelse til løkken:
hvis ($ count> 0) {
rewind_posts ();
ekko ' Indlæg tagget med '. $ tag. '' ';
mens (have_posts ()): the_post ();
if (has_tag ($ tag)) {
get_template_part ('inkluderer / loop', 'kategori');
}
// Afslut løkken.
EndWhile;
}
Denne kode bekræfter, at $ -tællingen er større end nul, og hvis det er tilfældet, spoles elementerne tilbage og kører løkken igen. For hvert emne kontrolleres det, om det ejer vores etiket, og i så fald kalder det den del af skabelonen, vi lige har oprettet.
Den tredje løkke: Se resten af artiklerne
Outputtet vil være en sidste sløjfe på de resterende artikler. Hvis denne kategori ikke har en artikel med "indhold" -tagget, vil den vise alle artiklerne i kategorien.
I din anden løkke skal du tilføje dette:
rewind_posts ();
// Second Loop - indlæg, der ikke har tagget 'indhold'
mens (have_posts ()): the_post ();
if (! has_tag ($ tag)) {
get_template_part ('inkluderer / loop', 'kategori');
}
// Afslut løkken.
i sidste ende; ?>
Denne sidste kode spoler artiklerne tilbage og udfører derefter sløjfen igen. Denne gang kontrollerer den, om en artikel ikke har tagget "indhold", så det viser indholdet i "skabelondelen".
Vi anbefaler dig også at opdage Sådan tilføjes en udskriftsindstilling artikler om WordPress
Du kan nu teste artikelsiden på din blog. Husk, at du kan ændre filtre. I denne tutorial brugte vi "indhold" som etikelfilter, men du kan bruge det efter eget valg.
Oplev også nogle premium WordPress-plugins
Du kan bruge andet WordPress plugins for at give et moderne udtryk og for at optimere håndteringen af din blog eller hjemmeside.
Vi tilbyder dig her nogle premium WordPress-plugins, der hjælper dig med det.
1. Social Wall Addon til UserPro
UserPro kan være meget sjovere med en social mur. Dette bringer dets Social Wall-udvidelse. Med Social Wall-pluginet kan du oprette en mur på dit websted og give dine medlemmer en forfriskende måde at interagere med samfundet på.
Le WordPress plugin Social Wall giver dine brugere mulighed for at: dele beskeder med hinanden, dele billeder, kommentere andres indlæg, brugere kan like eller dislike en besked, de kan vælge at vise væggen kun for loggede brugere eller for alle brugere, administratorer kan slet indlæg eller brugerkommentarer mm.
Downloade | demo | Web-hosting
2. Flipkart Affiliate Plus
Flipkart Affiliate Plus er en WordPress plugin modul, der forbinder dit WordPress-websted med Flipkart Affiliate API.
Ce WordPress plugin Det gør det meget nemt at importere produktdata fra Flipkart og opdatere dem direkte på din hjemmeside. Flipkart Affiliate Plus er det første WordPress-plugin til den officielle Flipkart API. Ved at bruge det behøver du ikke bruge en tredjeparts API. Du får således fuldt udbytte af dit arbejde.
Downloade | demo | Web-hosting
3. Handlingsbar Google Analytics til WooCommerce
Handlingsbar Google Analytics er et WordPress-plugin, der giver dig mulighed for at bruge nogle af de bedste funktioner i Universal Analytics, herunder: Udvidet e-handel og sporing af bruger-id. Derudover understøtter dette plugin anonymisering af IP-adresser, produkt refusioner, indholdsgruppering, formsporing osv.
Ved at bruge dette WordPress-plugin sparer du tid i integrationen af kompleks Google Analytics-kode, så du kan fokusere på at styre dine data.
Dets hovedfunktioner er: hurtig og nem installation, adgang til 9 forbedrede e-handelsrapporter, evnen til at undersøge, hvordan forskellige enheder bruges af den samme bruger, og hvordan køb foretages, evnen til at analysere, hvilke produkter der ofte tilbagebetales, til sidst at træffe afhjælpende handlinger og mere.
Downloade | demo | Web-hosting
Andre anbefalede ressourcer
Vi inviterer dig også til at konsultere nedenstående ressourcer for at komme videre i grebet og kontrollen af dit websted og blog.
Konklusion
Her ! Det er alt sammen for denne ret tekniske tutorial. Håber vi har været eksplicit om, hvordan man korrekt bruger WP_Query på WordPress. du er velkommen til del tipet med dine venner på dine sociale netværk.
Du vil dog også kunne konsultere vores ressourcer, hvis du har brug for flere elementer til at udføre dine projekter med oprettelse af internetsider ved at konsultere vores guide om WordPress blog oprettelse.
Men i mellemtiden, fortæl os om din kommentarer og forslag i det dedikerede afsnit.
...
Hej
Under alle omstændigheder takker jeg jer meget for dine svar og jeg ønsker dig en god fortsættelse
merci
___________ ________ _____ ____________
| Artikel 1 | | arti 2 | | _A3_ | | |
| __________ | | _______ | _____ | Artikel 6 |
______________________ | 5 | | |
| _________ 4 _________ | | ____ | | ___________ |
Hej blair
Jeg takker for disse tutoer,
Jeg vil gerne bede om lidt hjælp tak.
Jeg oprettede mit eget wordpres-tema (html / css), og jeg stødte på et lille problem, jeg vil prøve at arbejde for dig: Jeg planlægger at oprette et websted, der ligner msn.com, mit websted vil blive opdelt i flere divisioner ) som er: nyheder, underholdning, sundhed, livsstil ... osv. det vil sige, at jeg vil lave en første gruppe af artikler og en anden gruppe, en tredje ... osv. men vis alle grupper på samme side, og at hver gruppe tilhører en sektion (niche). Jeg spekulerer på, om dette wordpress back office kan administrere indholdet af hver sektion separat? med wordpress-sløjfen // Indlægsindhold undskyld, ingen indlæg fundet! Jeg får en blanding af ting:
det vil sige, at min sidste artikel, der er skrevet, er placeret direkte i det første afsnit, der er nyt, mens det f.eks. er en artikel, der hører til livsstil.
Jeg stødte på denne side https://codex.wordpress.org/fr:La_Boucle Jeg tror, at flere sløjfer kan løse mit problem!
håber du forstår hvad jeg prøver at sige
på forhånd tak for dit svar
Med venlig hilsen
Hej,
Jeg tror, du komplicerer dit liv for ingenting. Det, jeg forstår, er allerede, at du vil organisere dine artikler i kategorier (sektion), og hver sektion kan tilhøre en niche, som kan være overordnede kategorier. Ja løkken kan hjælpe dig med at gøre det, og det er imponerende simpelt.
Courage!
Godmorgen.
først tak for dit hurtige svar. Jeg tror, at det tema, jeg lige har oprettet, ikke længere er kompatibelt med wordpress, og det er her problemet kommer fra.
da dine kommentarer ikke understøtter det vedhæftede billede, forklarer jeg dig ved at tegne:
så her er en af kategorierne på webstedet
___________ ________ _____ ____________
| Artikel 1 | | arti 2 | | _A3_ | | | så forestil dig, at hver artikel er
| __________ | | _______ | _____ | Artikel 6 | repræsenteret ved en flise; så vi har 6
______________________ | 5 | | | genstande (hver flise indeholder billedet
| _________ 4 _________ | | ____ | | ___________ | og titlen på en bestemt artikel)
mit virkelige problem, mister Blair, er, at jeg ikke kan pakke mine artikler, så de kan flytte fra firkant 1 til firkant 6, dvs. når jeg tilføjer et nyt emne og Jeg offentliggør det. Jeg ønsker, at det skal træde i stedet for artikel 1 som i alle eksisterende temaer.
- Jeg synes, det er upraktisk, da hvert indlæg (artikel) har sine egne egenskaber som placering, højde, bredde ... osv. Hvad synes du da?
selvfølgelig er ideen lidt klar med dette diagram, ellers hvis jeg ikke har noget imod det, og du gerne vil hjælpe mig, har du min e-mail (du skal kun sende en e-mail med dit navn).
Tak igen for din omtanke
God aften, i dette tilfælde bliver du nødt til at tilføje variabler af typen "int", således at hver gang loop-løkken øges variablen, og i henhold til værdien af variablen kan du ændre l visning af artiklen. For eksempel :
hvis ($ i == 1) {
// din kode her
} ellers hvis ($ i == 2) {
// samme
}
$ Jeg ++;
Desværre kan jeg ikke hjælpe dig personligt for øjeblikket.