Sunt un mare fan al clasei WP_Query: o folosesc pe mai multe site-uri web client pentru a prelua și afișa date într-un mod personalizat.
Dacă doriți să utilizați mai multe bucle pe o pagină, cel mai bun mod de a face acest lucru este să rulați „WP_Query” de fiecare dată când trebuie să rulați o buclă.
Dar există un dezavantaj: de fiecare dată când WordPress rulează o buclă, trimite interogări la baza de date, ceea ce durează mai mult și poate încetini site-ul tău.
În acest tutorial, vă voi arăta cum să utilizați o interogare pentru mai multe bucle. Puteți face acest lucru cu interogarea principală sau puteți utiliza aceeași tehnică cu WP_Query.
Vom explora 3 aspecte:
- Creați o temă copil și un fișier șablon.
- Creați o parte șablon pentru conținutul buclei.
- Creați buclele noastre.
Dar înainte să descoperim împreună Cum se instalează un blog WordPress pași 7 et Cum de a găsi, a instala și a activa o temă WordPress pe blog-ul dvs.
Apoi înapoi la motivul pentru care suntem aici.
De ce ai nevoie
Pentru a urma acest tutorial, veți avea nevoie de:
- O instalare de WordPress pentru dezvoltare (local).
- Un editor de coduri.
- Articole de pe site-ul dvs. cu mai multe categorii atribuite
- tema Douăzeci și șaisprezece WordPress
- O temă pentru douăzeci și șaisprezece copii instalată și activată
Această tehnică se adaptează, de asemenea, la situația dvs. și la dvs WordPress temă.
Crearea unei teme pentru copil
În primul rând, vom crea tema copilului de douăzeci și șaisprezece. Fac asta pentru că nu vreau să modific tema părinte.
Descopera Cum se instalează o temă WordPress copil
În folderul „wp-content/themes”, creați un nou folder gol, pe care îl veți numi „tuto-theme”. Puteți alege ulterior numele care vi se potrivește.
În acest folder, creați un fișier numit style.css și adăugați următorul cod:
/*
Numele temei: Tema Tuto
URI temei: https://blogpascher.com
Descriere: Temă pentru a sprijini tutorialul despre rularea mai multor bucle în timp ce interogați baza de date o singură dată. Tema copil pentru tema Twenty Sixteen.
Autor: Hervé
URI autor: https://blogpascher.com
Șablon: douăzeci și șaisprezece
Versiune: 1.0
*/
@import url(„../twentysixteen/style.css”);
Acum salvați acest fișier și activați-vă noul WordPress temă.
Următorul pas este crearea unui fișier șablon pentru categorii, la care vom lucra.
Faceți o copie a fișierului „archive.php” din WordPress temă "Două mii șaisprezece." Nu-l muta, ci face o copie a lui. Redenumiți-l „category.php”.
Pentru a merge mai departe, descoperă Cum de a gestiona fișiere și foldere WordPress
Acesta va fi acum fișierul șablon pentru categoriile de site-uri web.
Crearea unui nou fișier șablon
Primul pas este să creați un nou fișier șablon în tema noastră care va conține o versiune modificată a buclei „douăzeci și șaisprezece”.
Haideți să ne consultăm împreună Cum să puneți site-ul dvs. WordPress în modul Întreținere
În folderul cu tema copil, creați un subdosar numit „include”. Și în interior, creați un fișier nou numit „loop-category.php”.
Apoi, deschideți fișierul „template-parts/content.php” din folderele cu tema părinte (douăzeci și șaisprezece) și găsiți următorul cod:
» >
', esc_url(get_permalink()), ' '); ?>
/* traducători: %s: numele postării curente */
the_content( sprintf(
__( „Continuați să citiți „%s” „, „douăzeci și șaisprezece” ),
get_the_title ()
));
wp_link_pages(matrice(
'inainte' => ' ' . __( „Pagini:”, „douăzeci și șaisprezece” ) . ' ',
'după' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' ' . __( „Pagină”, „douăzeci și șaisprezece” ) . ' %',
'separator' => ' , ',
));
?>
edit_post_link(
sprintf (
/* traducători: %s: numele postării curente */
__( „Editați „%s” „, „douăzeci și șaisprezece” ),
get_the_title ()
),
' ',
' '
);
?>
Copiați acest cod în noul fișier „loop-category.php” al temei copil.
Editarea fișierului șablon-parte
Bucla „douăzeci și șaisprezece” afișează mai mult decât am nevoie, așa că voi modifica acest cod. Vreau doar să afișez fragmentul și nu conținutul, așa că vom elimina conținutul.
Care este diferența dintre H1 și titlul SEO al unui articol WordPress? Aflați consultând acest articol.
În noul fișier loop-category.php, găsiți acest cod și ștergeți-l:
<div class="entry-content">
/* traducători: %s: numele postării curente */
the_content( sprintf(
__( „Continuați să citiți „%s” „, „douăzeci și șaisprezece” ),
get_the_title ()
));
wp_link_pages(matrice(
'inainte' => ' ' . __( „Pagini:”, „douăzeci și șaisprezece” ) . ' ',
'după' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' ' . __( „Pagină”, „douăzeci și șaisprezece” ) . ' %',
'separator' => ' , ',
));
?>
Celălalt pas este să înlocuiți funcția „twenty_sixteen_excerpt()” cu funcția „the_excerpt()”, deoarece versiunea lui twenty_sixteen nu oferă un link către articolul complet.
Vezi și Cum să vizualizați articole recente dintr-o anumită categorie
Găsiți această linie:
Înlocuiește-l cu asta:
De asemenea, trebuie să facem câteva modificări la etichetele de titlu.
În partea de șablon, editați linia:
', esc_url(get_permalink()), ' '); ?>
Schimbați etichetele H2 în H3:
', esc_url(get_permalink()), ' '); ?>
Salvați șablonul. Apoi, reveniți la fișierul categorie.php și vom continua cu el.
Crearea de bucle
Mai întâi vom elimina includerea codului „douăzeci și șaisprezece” din fișierul nostru „category.php”, deoarece va trebui să folosim noul fișier.
În fișierul categorie.php, găsiți acest cod:
get_template_part('template-parts/content', get_post_format());
Și șterge-l.
În continuare vom crea buclele.
În acest exemplu, voi afișa toate articolele cu eticheta „conținut”, folosind eticheta condiționată „has_tag()”. Aceasta înseamnă că va trebui să trec prin trei bucle:
- Primul verifică dacă interogarea a afișat articole cu această etichetă.
- Dacă da, al doilea afișează articolele cu această etichetă.
- Un al treilea afișează articole fără această etichetă.
Între fiecare buclă, voi folosi rewind_posts() pentru a derula înapoi postările fără a reseta interogarea: încă lucrăm cu interogarea principală de fiecare dată.
Prima buclă: Verificarea articolelor
În fișierul dvs. „category.php”, găsiți începutul buclei:
while (au_postări()): the_post();
Deasupra acestei linii, definiți o nouă variabilă numită $count:
$ count = 0;
Apoi, în interiorul acestei bucle, adăugați acest cod:
// verifică dacă există postări cu eticheta »
$tag = 'conținut';
dacă (are_etichetă($etichetă)) {
$număr +=1;
}
Acest cod verifică dacă mesajele au eticheta „conținut”, apoi adaugă 1 la contor dacă da.
Interiorul buclei va arăta astfel:
// Verificați pentru postări în prima buclă.
$ count = 0;
while (au_postări()): the_post();
// verifică dacă există postări cu eticheta »
$tag = 'conținut';
dacă (are_etichetă($etichetă)) {
$număr +=1;
}
endwhile;
A doua buclă: returnează articolele cu eticheta
Următorul pas este să rulați o buclă pentru a afișa postările cu acea etichetă, numai dacă există.
De exemplu, dacă valoarea $count este mai mare decât 0.
Descoperă și tu Cum de a personaliza tabloul de bord WordPress pentru un client
Adăugați această condiție în buclă:
dacă ( $număr > 0 ) {
rewind_posts();
ecou' Postări etichetate cu „ . $tag . ' ';
while (au_postări()): the_post();
dacă (are_etichetă($etichetă)) {
get_template_part('include/buclă', 'categorie');
}
// Încheiați bucla.
endwhile;
}
Acest cod verifică dacă $count este mai mare decât zero și, dacă da, derulează elementele și rulează din nou bucla. Pentru fiecare articol verifică dacă are eticheta noastră și, dacă da, denumește partea din model pe care tocmai am creat-o.
A treia buclă: Afișați restul articolelor
Ieșirea va fi o buclă finală peste elementele rămase. Dacă această categorie nu are un articol cu eticheta „conținut”, atunci va afișa toate articolele din categorie.
Învață și tu Cum de a crea un blog multi-autor și permite cititorilor dvs. să posteze articole pe blogul tău
În a doua buclă, adăugați asta:
rewind_posts();
// A doua buclă – postări care nu au eticheta „conținut”.
while (au_postări()): the_post();
dacă ( !has_tag( $tag ) ) {
get_template_part('include/buclă', 'categorie');
}
// Încheiați bucla.
sfârşitul timpului; ?>
Acest ultim cod derulează articolele și apoi rulează din nou bucla. De data aceasta, verifică dacă un articol nu are eticheta „conținut”, apoi afișează conținutul în „partea șablon”.
De asemenea, vă invităm să descoperiți Cum se adaugă o opțiune de imprimare a articolelor pe WordPress
Acum puteți testa pagina de postări de blog. Nu uitați că puteți schimba filtrele. În acest tutorial am folosit „conținut” ca filtru de etichetă, dar îl puteți folosi pe cel la alegere.
Descoperiți și câteva plugin-uri premium WordPress
Puteți folosi altele WordPress plugin-uri pentru a oferi un aspect modern și pentru a optimiza gestionarea blogului sau site-ului dvs.
Vă oferim aici câteva plugin-uri WordPress premium care vă vor ajuta să faceți asta.
1. Social Addon de perete pentru UserPro
UserPro poate fi mult mai distractiv cu un zid social. Aceasta este ceea ce aduce extensia sa Social Wall. Cu ajutorul pluginului Social Wall, puteți crea un perete pe site-ul dvs. web și le puteți oferi membrilor un mod răcoritor de a interacționa cu comunitatea.
Le WordPress plug-in Social Wall permite utilizatorilor dvs.: să partajeze mesaje între ei, să partajeze imagini, să comenteze postările altor persoane, utilizatorii pot aprecia sau nu aprecia un mesaj, pot alege să afișeze peretele numai pentru utilizatorii conectați sau pentru toți utilizatorii, administratorii pot ștergeți postările sau comentariile utilizatorilor etc.
Descarca | Demo | web hosting
2. Flipkart Affiliate Plus
Flipkart Affiliate Plus este un WordPress plug-in modular care vă ajută să vă conectați site-ul WordPress la API-ul Flipkart Affiliate.
Ce WordPress plug-in Face foarte ușor să importați date despre produse din Flipkart și să le actualizați direct pe site-ul dvs. web. Flipkart Affiliate Plus este primul plugin WordPress pentru API-ul oficial Flipkart. Folosind-o, nu va trebui să utilizați un API terță parte. Beneficiezi astfel pe deplin de munca ta.
Descarca | Demo | web hosting
3. Acțiune Google Analytics pentru WooCommerce
Actionable Google Analytics este un plugin WordPress care vă permite să utilizați unele dintre cele mai bune caracteristici ale Universal Analytics, inclusiv: Comerțul electronic îmbunătățit și Urmărirea ID-ului utilizatorului. În plus, acest plugin acceptă anonimizarea adresei IP, rambursările de produse, gruparea de conținut, urmărirea formularelor etc...
Folosind acest plugin WordPress, veți economisi timp în integrarea codului complex Google Analytics, astfel încât să vă puteți concentra pe gestionarea datelor dvs.
Principalele sale caracteristici sunt: instalare rapidă și ușoară, acces la 9 rapoarte îmbunătățite de comerț electronic, posibilitatea de a studia modul în care diferite dispozitive sunt utilizate de către același utilizator și cum se fac achizițiile, capacitatea de a analiza ce produse sunt rambursate cel mai des, luați acțiuni corective și multe altele.
Descarca | Demo | web hosting
Alte resurse recomandate
De asemenea, vă invităm să consultați resursele de mai jos pentru a merge mai departe în controlul și controlul site-ului și blogului dvs.
Concluzie
Asa de ! Asta e tot pentru acest tutorial destul de tehnic. Sper că am fost explicit despre cum să folosim corect WP_Query pe WordPress. simte-te liber sa împărtășiți sfatul prietenilor dvs. de pe rețelele de socializare.
Cu toate acestea, veți putea, de asemenea, să ne consultați Resurse, dacă aveți nevoie de mai multe elemente pentru a vă derula proiectele de creare a site-urilor de internet, consultați ghidul nostru cu privire la Creare blog WordPress.
Dar între timp, spuneți-ne despre dumneavoastră comentarii și sugestii în secțiunea dedicată.
...
bonjour
În orice caz, vă mulțumesc foarte mult pentru răspunsuri și vă doresc mult succes.
merci
___________ ________ _____ ____________
| punctul 1 | | articolul 2 | |_a3_| | |
|__________| |_______| _____ | articolul 6 |
______________________ | 5 | | |
|_________ 4 _________| |____| |___________|
Bună Blair,
Vă mulțumesc pentru aceste tutoriale perfecte,
As dori sa cer un mic ajutor va rog.
Mi-am creat propria temă WordPress (html/css) și am întâmpinat o mică problemă.Voi încerca să vă clarific: am de gând să creez un site asemănător cu msn.com.Site-ul meu va fi împărțit în mai multe divizii (secțiuni) . ) care sunt: știri, divertisment, sănătate, stil de viață... etc. adică vreau să creez un prim grup de Articole și un al doilea grup, un al treilea... etc. dar afișați toate grupurile pe aceeași pagină și că fiecare grup aparține unei secțiuni (nișă). Mă întreb dacă acest back office WordPress poate gestiona conținutul fiecărei secțiuni separat? cu bucla wordpress //Postează conținut Ne pare rău, nu s-au găsit postări! Primesc un amestec de articole:
adică ultimul meu articol scris este plasat direct pe prima secțiune care este știri, în timp ce este un articol care aparține stilului de viață de exemplu.
Am dat peste această pagină https://codex.wordpress.org/fr:La_Boucle Cred că partea cu mai multe bucle îmi poate rezolva problema!
Sper că înțelegi ce încerc să spun
Va multumesc anticipat pentru raspuns,
Salutări calde,
bonjour,
Cred că degeaba vă îngreunați lucrurile. Ceea ce am înțeles deja este că doriți să vă organizați articolele pe categorii (secțiune) și fiecare secțiune poate aparține unei nișe, care pot fi categorii părinte. Da, bucla vă poate ajuta să faceți asta și este impresionant de simplu.
Curaj!
Bună dimineața.
În primul rând, vă mulțumesc pentru răspunsul rapid. Cred că tema pe care tocmai am creat-o nu mai este compatibilă cu WordPress și de aici vine problema.
de fapt, din moment ce comentariile voastre nu susțin imaginea atașată, vă voi explica prin desen:
iata una dintre categoriile site-ului
___________ ________ _____ ____________
| punctul 1 | | articolul 2 | |_a3_| | | deci imaginați-vă că fiecare articol este
|__________| |_______| _____ | articolul 6 | reprezentat printr-o țiglă; deci avem 6
______________________ | 5 | | | articole (fiecare placă conține imaginea
|_________ 4 _________| |____| |___________| și titlul unui anumit articol)
Adevărata mea problemă, domnule Blair, este că nu pot să-mi completez articolele astfel încât acestea să poată trece de la pătratul 1 la pătratul 6, adică atunci când adaug un articol nou și îl public vreau să ia locul articolului. 1 ca în toate temele existente.
– Cred că acest lucru nu este fezabil deoarece fiecare postare (articol) are proprietăți proprii precum locație, înălțime, lățime etc., ce părere aveți atunci?
bineinteles ideea este putin clara cu aceasta diagrama, altfel daca nu te deranjez si vrei sa ma ajuti, ai e-mail-ul meu (trebuie doar sa trimiti un e-mail care sa contina numele tau).
Vă mulțumesc încă o dată pentru considerație
Bună seara, în acest caz, va trebui să adăugați cu variabile de tip „int”, așa că, de fiecare dată când se face bucla, veți incrementa variabila și în funcție de valoarea variabilei, veți putea modifica afișarea articolul. De exemplu :
dacă( $i == 1 ) {
// codul dvs. aici
} else if( $i == 2 ) {
// Aceeași
}
$ I ++;
Din păcate, nu vă pot asista personal în acest moment.