Ik ben een grote fan van de klasse WP_Query: ik gebruik het op verschillende websites van klanten om gegevens op een gepersonaliseerde manier op te halen en weer te geven.
Als je meerdere loops op een pagina wilt gebruiken, is de beste manier om dat te doen "WP_Query" uit te voeren wanneer je een loop moet maken.
Maar er is een nadeel: wanneer WordPress een lus uitvoert, stuurt deze query's naar de database, wat langer duurt en uw website kan vertragen.
In deze zelfstudie laat ik u zien hoe u een query voor meer dan één lus kunt gebruiken. U kunt dit doen met de hoofdquery of u kunt dezelfde techniek gebruiken met WP_Query.
We zullen 3-aspecten verkennen:
- Maak een kindthema en een sjabloonbestand.
- Maak een sjabloonstuk voor de lusinhoud.
- Maak onze loops.
Maar voordat we het samen ontdekken Hoe maak je een WordPress blog 7 stappen te installeren et Hoe te vinden, installeren en activeren van een WordPress theme op uw blog
Ga dan terug naar waarom we hier zijn.
Wat je nodig hebt
Om deze handleiding te volgen moet u:
- Van een WordPress-installatie voor ontwikkeling (lokaal).
- Een code-editor.
- Artikelen op uw website waaraan meerdere categorieën zijn toegewezen
- het twintig zestien-thema van WordPress
- Een kinderthema van zestien zestien geïnstalleerd en geactiveerd
Deze techniek past zich ook aan uw situatie aan, en aan uw WordPress theme.
Een kindthema maken
Eerst gaan we het child-thema van twintig zestien maken. Ik doe dit omdat ik het hoofdthema niet wil wijzigen.
Ontdek Hoe maak je een WordPress kind thema te installeren
Maak in uw map "wp-inhoud / thema's" een nieuwe lege map aan, die u "tutor-thema" zult noemen. U kunt later de naam kiezen die bij u past.
Maak in deze map een bestand met de naam style.css en voeg de volgende code toe:
/*
Naam thema: Tuto-thema
Thema URI: https://blogpascher.com
Beschrijving: Thema ter ondersteuning van zelfstudie over het uitvoeren van meerdere lussen terwijl de database slechts eenmaal wordt opgevraagd. Kind thema voor het Twenty Sixteen thema.
Auteur: Hervé
Auteur URI: https://blogpascher.com
Sjabloon: twentysixteen
Versie: 1.0
*/
@import url ("../twentysixteen/style.css");
Sla nu dit bestand op en activeer uw nieuwe WordPress theme.
De volgende stap is het maken van een sjabloonbestand voor de categorieën, daar gaan we aan werken.
Maak een kopie van het bestand “archive.php” uit de WordPress theme ‘Zesentwintig.’ Verplaats het niet, maar maak er een kopie van. Hernoem het “categorie.php”.
Ontdek het om verder te gaan Hoe om bestanden en mappen WordPress beheren
Dit wordt nu het sjabloonbestand voor de categorieën van uw website.
Een nieuw sjabloonbestand maken
De eerste stap is om een nieuw sjabloonbestand in ons thema te maken dat een aangepaste versie van de lus "twintig zestien" bevat.
Laten we ook samen overleggen Hoe u uw WordPress-website in de onderhoudsmodus plaatst
Maak in de onderliggende themamap een submap met de naam "omvat". En maak binnen een nieuw bestand met de naam "loop-category.php".
Open vervolgens het bestand "template-parts / content.php" uit de bovenliggende themamappen (zestienentwintig) en zoek de volgende code:
" >
', esc_url (get_permalink ())),' '); ?>
/ * vertalers:% s: naam van huidige post * /
the_content (sprintf (
__ ('Lees verder '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (array (
'before' => ' '. __ ('Pagina's:', 'twentysixteen'). ' ',
'after' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Pagina', 'Twentysixteen'). ' %',
'separator' => ' , ',
));
?>
edit_post_link (
sprintf (
/ * vertalers:% s: naam van huidige post * /
__ ('Bewerken '% s ' ', 'twentysixteen'),
get_the_title ()
),
' ',
''
);
?>
Kopieer deze code naar het nieuwe "loop-category.php" -bestand van het onderliggende thema.
Het sjabloononderdeelbestand bewerken
De "twintig zestien" lus laat meer zien dan wat ik nodig heb, dus ik ga deze code aanpassen. Ik wil alleen het fragment laten zien en niet de inhoud, dus we zullen de inhoud verwijderen.
Wat is het verschil tussen H1 en de SEO-titel van een WordPress-artikel? Ontdek het door dit artikel te raadplegen.
Zoek in uw nieuwe lus-category.php-bestand deze code en verwijder deze:
<div class = "entry-content">
/ * vertalers:% s: naam van huidige post * /
the_content (sprintf (
__ ('Lees verder '% s ' ', 'twentysixteen'),
get_the_title ()
));
wp_link_pages (array (
'before' => ' '. __ ('Pagina's:', 'twentysixteen'). ' ',
'after' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Pagina', 'Twentysixteen'). ' %',
'separator' => ' , ',
));
?>
De andere stap is om de functie "twintig_sixteen_excerpt ()" te vervangen door de functie "the_excerpt ()", omdat de versie van twintig zestien geen link geeft naar het volledige artikel.
Zie ook Hoe kan ik recente artikelen in een bepaalde categorie te bekijken
Zoek deze regel:
Vervang het hiermee:
We moeten ook enkele wijzigingen aanbrengen in de titeltags.
Wijzig in het modeldeel de regel:
', esc_url (get_permalink ())),' '); ?>
Bewerk de H2-tags voor H3:
', esc_url (get_permalink ())),' '); ?>
Registreer uw model. Ga vervolgens terug naar uw categorie.php-bestand, we zullen hiermee doorgaan.
Lussen maken
Allereerst gaan we de opname van de code voor "twintig zestien" uit ons "category.php" -bestand verwijderen, aangezien we het nieuwe bestand moeten gebruiken.
Zoek in uw categorie.php-bestand deze code:
get_template_part ('template-parts / content', get_post_format ());
En verwijder de.
Dan zullen we de lussen maken.
In dit voorbeeld zal ik alle berichten weergeven met de tag "content", met behulp van de voorwaardelijke tag "has_tag ()". Dit betekent dat ik door drie lussen moet gaan:
- De eerste controle of de query items met deze tag heeft gepost.
- Als dit het geval is, geeft de seconde de artikelen met dit label weer.
- Een derde geeft artikelen weer zonder deze tag.
Tussen elke lus gebruik ik rewind_posts () om berichten terug te spoelen zonder de query opnieuw in te stellen: we werken altijd met de hoofdquery.
De eerste lus: verificatie van artikelen
Zoek in het bestand "category.php" het begin van de lus:
terwijl (have_posts ()): the_post ();
Definieer boven deze regel een nieuwe variabele met de naam $ count:
$ count = 0;
Voeg dan binnen die lus deze code toe:
// controleer of er berichten zijn met de »tag
$ tag = 'inhoud';
if (has_tag ($ tag)) {
$ count + = 1;
}
Deze code controleert of de berichten het label "inhoud" hebben en voegt dan 1 toe aan de teller als dat het geval is.
De binnenkant van de lus ziet er ongeveer zo uit:
// Controleer op berichten in de eerste lus.
$ count = 0;
terwijl (have_posts ()): the_post ();
// controleer of er berichten zijn met de »tag
$ tag = 'inhoud';
if (has_tag ($ tag)) {
$ count + = 1;
}
endwhile;
De tweede lus: herstel artikelen met de tag
De volgende stap is om te lussen om artikelen met deze tag weer te geven, alleen als die er zijn.
Als de waarde van $ count bijvoorbeeld groter is dan 0.
Ontdek ook Hoe het dashboard WordPress aanpassen voor een cliënt
Voeg deze voorwaarde toe aan de lus:
if ($ count> 0) {
rewind_posts ();
echo ' Berichten getagd met '. $ tag. ' ';
terwijl (have_posts ()): the_post ();
if (has_tag ($ tag)) {
get_template_part ('inclusief / loop', 'categorie');
}
// Beëindig de lus.
endwhile;
}
Deze code verifieert dat $ count groter is dan nul en zo ja, spoelt de items terug en voert de lus opnieuw uit. Voor elk item wordt gecontroleerd of het ons label bezit en, zo ja, wordt het gedeelte van de sjabloon aangeroepen dat we zojuist hebben gemaakt.
De derde lus: bekijk de rest van de artikelen
De uitvoer is een laatste lus van de resterende artikelen. Als deze categorie geen artikel heeft met de tag "content", dan worden alle artikelen in de categorie weergegeven.
Leer ook Hoe maak je een multi-auteur blog te maken en laat uw lezers om artikelen te plaatsen op uw blog
Voeg in je tweede lus dit toe:
rewind_posts ();
// Second Loop - berichten niet met de 'content'-tag
terwijl (have_posts ()): the_post ();
if (! has_tag ($ tag)) {
get_template_part ('inclusief / loop', 'categorie');
}
// Beëindig de lus.
ondertussen; ?>
Deze laatste code spoelt de artikelen terug en voert de lus vervolgens opnieuw uit. Deze keer controleert het of een artikel niet de "content" -tag heeft, waarna de inhoud in het "template-part" wordt weergegeven.
We raden u ook aan om te ontdekken Hoe voeg je een artikel afdrukoptie toe aan WordPress
U kunt nu de artikelenpagina van uw blog testen. Vergeet niet dat u de filters kunt wijzigen. In deze zelfstudie hebben we "inhoud" gebruikt als labelfilter, maar u kunt de filter van uw keuze gebruiken.
Ontdek ook enkele premium WordPress-plug-ins
U kunt andere gebruiken WordPress plugins om een moderne uitstraling te geven en de afhandeling van uw blog of website te optimaliseren.
We bieden je hier enkele premium WordPress-plug-ins die je daarbij kunnen helpen.
1. Social Wall Addon voor UserPro
UserPro kan veel leuker zijn met een sociale muur. Dit is wat de Social Wall-extensie brengt. Met de Social Wall-plug-in kunt u een muur op uw website maken en uw leden een verfrissende manier bieden om met de community te communiceren.
Le WordPress Plugin Met Social Wall kunnen uw gebruikers: berichten met elkaar delen, afbeeldingen delen, reageren op de berichten van anderen, gebruikers kunnen een bericht leuk vinden of niet leuk vinden, ze kunnen ervoor kiezen om de muur alleen weer te geven voor ingelogde gebruikers of voor alle gebruikers, beheerders kunnen verwijder berichten of gebruikersreacties enz.
Downloaden | demonstratie | web hosting
2. Flipkart Affiliate Plus
Flipkart Affiliate Plus is een WordPress Plugin module die uw WordPress-website verbindt met de Flipkart Affiliate API.
Ce WordPress Plugin Het maakt het heel eenvoudig om productgegevens uit Flipkart te importeren en deze rechtstreeks op uw website bij te werken. Flipkart Affiliate Plus is de eerste WordPress-plug-in voor de officiële Flipkart API. Door het te gebruiken, hoeft u geen API van derden te gebruiken. Zo profiteert u optimaal van uw werk.
Downloaden | demonstratie | web hosting
3. Bruikbare Google Analytics voor WooCommerce
Bruikbare Google Analytics is een WordPress-plug-in waarmee u enkele van de beste functies van Universal Analytics kunt gebruiken, waaronder: verbeterde e-commerce en tracking van gebruikers-ID's. Bovendien ondersteunt deze plug-in de anonimisering van IP-adressen, productrestituties, inhoudsgroepering, formuliertracering, enz.
Door deze WordPress-plug-in te gebruiken, bespaart u tijd bij de integratie van complexe Google Analytics-code, zodat u zich kunt concentreren op het beheer van uw gegevens.
De belangrijkste kenmerken zijn: snelle en gemakkelijke installatie, toegang tot 9 verbeterde e-commerce-rapporten, de mogelijkheid om te bestuderen hoe verschillende apparaten door dezelfde gebruiker worden gebruikt en hoe aankopen worden gedaan, de mogelijkheid om te analyseren welke producten het vaakst worden vergoed, om uiteindelijk corrigerende maatregelen te nemen, en meer.
Downloaden | demonstratie | web hosting
Andere aanbevolen bronnen
We nodigen u ook uit om de onderstaande bronnen te raadplegen om verder te gaan in de greep en controle van uw website en blog.
Conclusie
Alstublieft ! Dat is alles voor deze vrij technische tutorial. Ik hoop dat we expliciet zijn geweest over hoe we WP_Query correct op WordPress kunnen gebruiken. voel je vrij om deel de tip met je vrienden op je sociale netwerken.
U kunt echter ook onze ressources, als u meer elementen nodig hebt om uw projecten voor het maken van internetsites uit te voeren, raadpleeg onze gids op de WordPress blog creatie.
Maar vertel ons ondertussen over uw commentaires en suggesties in de speciale sectie.
...
Dag
Hoe dan ook, ik dank u heel erg voor uw antwoorden en ik wens u een goede voortzetting
merci
___________ ________ _____ ____________
| Artikel 1 | | arti 2 | | _A3_ | | |
| __________ | | _______ | _____ | Artikel 6 |
______________________ | 5 | | |
| _________ 4 _________ | | ____ | | ___________ |
Hallo Blair,
Ik dank u voor deze tutos perfais,
Ik zou graag wat hulp willen vragen.
Ik heb mijn eigen wordpres-thema gemaakt (html / css) en ik ben een klein probleem tegengekomen dat ik voor je zal proberen uit te werken: ik ben van plan een site te maken die lijkt op msn.com, mijn site zal worden onderverdeeld in verschillende divisies (rubrieken ) die zijn: nieuws, entertainment, gezondheid, levensstijl ... enz. dat wil zeggen dat ik een eerste groep artikelen wil realiseren, en een tweede groep, een derde ... enz. maar toon alle groepen op dezelfde pagina en dat elke groep tot een sectie (niche) behoort. Ik vraag me af of deze WordPress-backoffice de inhoud van elke sectie afzonderlijk kan beheren? met de wordpress loop // Plaats inhoud sorry, geen berichten gevonden! Ik krijg een mix van items:
dat wil zeggen dat mijn laatste artikel dat ik heb geschreven direct op de eerste sectie is geplaatst die nieuws is, terwijl het een artikel is dat bijvoorbeeld bij lifestyle hoort.
Ik kwam deze pagina tegen https://codex.wordpress.org/fr:La_Boucle Ik denk dat het meervoudige loops onderdeel mijn probleem kan oplossen!
Ik hoop dat je begrijpt wat ik probeer te zeggen
alvast bedankt voor uw antwoord,
Met vriendelijke groet,
Hallo,
Ik denk dat je je leven voor niets ingewikkeld maakt. Wat ik al begrijp, is dat u uw artikelen in categorieën (sectie) wilt indelen en dat elke sectie tot een niche kan behoren, wat bovenliggende categorieën kunnen zijn. Ja, de lus kan je daarbij helpen, en het is indrukwekkend eenvoudig.
Courage!
Goedemorgen.
allereerst bedankt voor uw snelle antwoord. Ik denk dat het thema dat ik zojuist heb gemaakt niet langer compatibel is met WordPress en dat is waar het probleem vandaan komt.
aangezien uw opmerkingen de bijgevoegde afbeelding niet ondersteunen, zal ik u uitleggen door te tekenen:
hier is een van de categorieën van de site
___________ ________ _____ ____________
| Artikel 1 | | arti 2 | | _A3_ | | | dus stel je voor dat elk artikel dat is
| __________ | | _______ | _____ | Artikel 6 | voorgesteld door een tegel; dus we hebben 6
______________________ | 5 | | | items (elke tegel bevat de afbeelding
| _________ 4 _________ | | ____ | | ___________ | en de titel van een bepaald artikel)
mijn echte probleem, meneer Blair, is dat ik mijn artikelen niet kan inpakken zodat ze van vierkant 1 naar vierkant 6 kunnen gaan, d.w.z. wanneer ik een nieuw item toevoeg en Ik publiceer het, ik wil dat het de plaats inneemt van artikel 1 zoals in alle bestaande thema's.
- Ik denk dat het onpraktisch is aangezien elk bericht (artikel) zijn eigen eigenschappen heeft zoals locatie, hoogte, breedte… etc, wat denk je dan?
het idee is natuurlijk een beetje duidelijk met dit diagram, anders als ik het niet erg vind en je zou me willen helpen, heb je mijn e-mail (je hoeft alleen een e-mail te sturen met je naam).
Nogmaals bedankt voor uw heroverweging
Goedenavond, in dit geval moet u variabelen van het type "int" toevoegen, dus elke keer dat de luslus loopt, verhoogt u de variabele en afhankelijk van de waarde van de variabele kunt u de weergave van het artikel. Bijvoorbeeld :
als ($ i == 1) {
// hier uw code
} anders als ($ i == 2) {
// dergelijke
}
$ I ++;
Helaas kan ik u op dit moment niet persoonlijk helpen.