Bucla WordPress: Ce este și ce trebuie să știi despre ea

Publicat: 2023-10-25

Dacă ești un dezvoltator de teme WordPress, un programator sau doar un entuziast general dornic să afle ce este o buclă WordPress, acest articol este pentru tine! Fără alte prelungiri, să începem cu elementele de bază: Ce este o buclă?

Bucla WordPress este un cod PHP care afișează postări WordPress sau pur și simplu; este folosit în diverse teme pentru a afișa postări pe orice pagină web dată. Nu numai că rulează pe majoritatea paginilor pe care le vedeți, dar vă permite și să îl modificați și să îl personalizați după bunul plac.

Aceste bucle de site-uri web pot fi folosite pentru a lista postările după numărul de comentarii, pentru a afișa postări cu imagini și așa mai departe.

Când te uiți la buclă, poți vedea că unele funcții rulează implicit pentru a afișa postările. Dezvoltatorii de teme pot folosi acele funcții și etichete de șablon pentru a personaliza modul în care este afișată fiecare postare din buclă.

Aceste etichete șablon funcționează numai în bucla implicită WordPress și sunt folosite pentru a formata, aranja și publica datele postărilor.

Bucla WordPress este, fără îndoială, cea mai importantă parte a codului WordPress și permiteți-ne să ne aprofundăm în modul în care site-ul dvs.

Buclă de pagină WordPress pentru începători

După cum am menționat deja, bucla de postare este un cod care scoate toate informațiile pe care WordPress le are despre o postare sau postări. Se rulează în fundal prin fiecare postare și găsește baza de date una câte una, ceea ce îi permite să furnizeze informații despre toate postările găsite.

Iată un exemplu despre cum funcționează WordPress bucla prin postări:

  1. începi bucla,
  2. ia măsuri cu fiecare postare sau pagină găsită,
  3. închide bucla.

Acești trei pași reprezintă logica de bază din spatele buclei. Din acest punct, puteți deveni creativ și puteți filtra postările pe care le-ați găsit folosind interogarea. Interogarea spune buclei ce căutăm. În exemplul nostru, ar arăta astfel:

  1. definiți ceea ce căutăm,
  2. începe bucla,
  3. ia măsuri cu fiecare postare sau pagină găsită,
  4. închide bucla.

Dacă aveți experiență cu codul PHP, este posibil să fiți familiarizat cu funcția „while” care este utilizată în bucle pentru a rula interogarea bazei de date și pentru a afișa dinamic informațiile fără a fi nevoie să introduceți manual fiecare rând al bazei de date.

Bucla while WordPress funcționează în același mod.

Exemplu de buclă standard WordPress

Mai jos este un exemplu de buclă standard WordPress care poate fi folosită pe orice pagină.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>

Aruncă o privire la funcțiile have_posts() și the_post() . Primul determină dacă există postări de afișat, iar al doilea setează date și puncte interne care ajută funcția have_posts() .

Dacă nu există nimic de afișat, atunci funcția ar trebui să afișeze un mesaj care informează utilizatorii.

Dacă există postările pe care le căutăm, atunci bucla le va afișa una câte una.

Aici, aveți un bloc de cod care va afișa de fapt postările, este pe seama noastră!

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>

Conținutul afișat aici este determinat de interogarea despre care am vorbit deja și modul în care este afișat acel conținut depinde de buclă. Această cantitate de personalizare este minunată și este ceea ce face ca WordPress să iasă în evidență.

Buna treaba! Acum știi ce este o buclă de postare!

Utilizarea codului pentru a schimba interogarea principală

Înainte de a începe, trebuie să vă avertizăm că schimbarea interogării principale poate avea consecințe nedorite dacă nu știți ce faceți. Aveți grijă când experimentați!

Trebuie să ne uităm la cârlige dacă vrem să modificăm funcționalitatea de bază. Cârligele ne permit să schimbăm lungimea textului, să schimbăm ecranul de conectare, să reformulam mesajele de eroare, să schimbăm tipurile de postări personalizate și multe altele.

add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}

Rețineți că folosim hook-ul pre_get_post pentru a modifica parametrul interogării principale înainte de a rula. Codul de mai sus face același lucru ca și cel de mai sus, dar de data aceasta exclude categoria 92 de pe pagina noastră de pornire. Prin urmare, interogarea principală este modificată

Aruncă o privire la funcțiile is_home() și is_main_query() . Ei sunt aici pentru a se asigura că interogarea este modificată doar pe pagina de pornire și dacă este interogarea principală.

Iată un alt cod care poate fi util într-o buclă de blog WordPress.

Să presupunem că un autor de pe site-ul dvs. web a plagiat o parte (sau tot) din conținutul său și doriți să eliminați definitiv toate postările sale sau până când problema este rezolvată.

Acest lucru se poate face prin adăugarea unui cod ca acesta:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}

Cu această funcție condiționată eliminați postarea autorului atât de pe site-ul dvs. web, cât și din backend. Puteți găsi toate etichetele condiționate în Codexul WordPress. Iată cum ar trebui să arate ultimul cod la final:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}

Întrebări frecvente despre bucla WordPress

Ce este bucla WordPress, oricum?

Omule, asta mă duce înapoi! Deci, în esență, bucla WordPress este motorul WP care afișează conținut din baza de date de pe site-ul tău.

Este inima multor șabloane WP și spune sistemului ce postări sau pagini trebuie afișate și în ce ordine. Gândește-te la asta ca la DJ-ul petrecerii tale WordPress, alegând melodiile (sau postările) potrivite pentru invitații tăi.

De ce este bucla atât de esențială în dezvoltarea temei?

Ah, dezvoltarea temei , un puzzle distractiv de fiecare dată! Bucla este ca coloana vertebrală a unei teme WordPress. Fără el, tema ta ar fi un film mut fără intriga.

Preia conținutul pe baza parametrilor WP_Query și, prin intermediul etichetelor șablon , puteți personaliza ce și cum este afișat conținutul. Ați auzit vreodată de teme cu stiluri speciale pentru anumite postări? Da, asta e magia buclei la lucru.

Cum se raportează WP_Query la buclă?

Bine, mergi cu mine aici. WP_Query este clasa care definește și preia conținutul. Bucla trece apoi prin rezultatele returnate de WP_Query.

Gândiți-vă la WP_Query ca la bucătarul care pregătește mâncărurile, în timp ce bucla le servește oaspeților tăi. Și cu tipuri de postări și taxonomii personalizate , acest bucătar poate pregăti o gamă impresionantă de feluri de mâncare!

Care este diferența dintre have_posts() și the_post()?

Întrebare clasică! have_posts() verifică dacă au mai rămas postări în interogare de parcurs. Este ca și cum ai întreba: „Hei, mai sunt cântece pe lista de redare?”

Între timp, the_post() setează postarea curentă, așa că sunteți gata să-i afișați detaliile. Este asemănător cu a da pe play pe următoarea melodie. Ambele sunt super cruciale în dansul buclei.

Cum pot personaliza ce postări apar în buclă?

Ah, puterea personalizării! Pentru a modifica postările care apar, modificați parametrii WP_Query sau utilizați filtrul pre_get_posts .

Fie că este vorba despre o buclă de categorie , buclă de etichetă sau orice altă interogare personalizată , există atât de multe pe care le puteți face. Doriți să afișați postări dintr-o anumită categorie? Sau poate le sortați după un câmp personalizat ? Lumea este stridia ta!

Pot avea mai multe bucle într-o singură pagină?

Pui pariu! Mai multe bucle sunt un lucru, mai ales atunci când doriți secțiuni diferite, cum ar fi o listă de articole principale urmată de o bară laterală cu postări recente.

Trebuie doar să resetați bucla cu wp_reset_postdata() după fiecare WP_Query personalizat. Și cu părțile șablon , este și mai organizat. Nu uitați să nu exagerați – nimănui nu-i place o petrecere aglomerată!

Ce sunt etichetele condiționate în contextul buclei?

Deci, etichetele condiționate sunt gardienii buclei. Vă permit să controlați unde și când se afișează anumite conținuturi.

Le puteți folosi pentru a afișa un conținut numai pe postări individuale sau poate doar într-o anumită taxonomie . Sunt ca bouncerii clubului tău WP, care decid cine intră pe baza listei de invitați.

Cum adaug paginarea buclei?

Ah, paginarea, arta de a nu-ți copleși vizitatorii! Folosind funcțiile de paginare , vă puteți împărți postările în mai multe pagini.

În loc să arătați o listă nesfârșită de postări, oferiți-le utilizatorilor o pauză. Funcții precum paginate_links() sau linkurile clasice „next and previous” ajută aici. Pentru că, să fim realiști, nimeni nu vrea să defileze pentru totdeauna.

De ce ar trebui vreodată să modific interogarea principală?

Buna asta! Uneori, setările implicite pur și simplu nu o vor tăia. Poate doriți ca pagina dvs. de pornire să afișeze doar un anumit tip de postare personalizată sau să excludă anumite categorii.

Folosind acțiunea pre_get_posts , puteți modifica interogarea principală fără a scrie una nouă. Este ca și cum ai ajusta setările principale de pe stereo pentru un sunet perfect.

Ce se întâmplă dacă există o problemă cu bucla mea?

Uf, am fost acolo! Dacă există un sughiț cu bucla, site-ul dvs. ar putea să nu afișeze conținut sau, chiar mai rău, să afișeze erori. Faceți întotdeauna backup înainte de a modifica. Verificați parametrii WP_Query și ierarhia șablonului .

Și dacă toate celelalte nu reușesc, Codexul WordPress și forumurile comunității sunt mine de aur pentru depanare. Amintiți-vă, fiecare dezvoltator se confruntă cu o buclă glitchy cel puțin o dată. Ai asta!

Încheierea gândurilor despre bucla WordPress

Utilizarea buclei WordPress este o modalitate excelentă de a vă personaliza postările, paginile sau, pur și simplu, site-ul dvs. Bucla vă cere să aveți o înțelegere de bază a modului în care funcționează WordPress și a logicii codului.

Dacă nu doriți să faceți un test rapid, nu vă recomandăm să utilizați funcția query_posts(). Puteți folosi diverse cârlige în cazul în care trebuie să modificați interogarea inițială. Fiți întotdeauna precaut când schimbați codul buclei WordPress.

Sperăm că acest articol a fost un prim pas bun către stăpânirea buclei WordPress!

Dacă v-a plăcut acest articol despre bucla WordPress, ar trebui să citiți și acestea:

  • Eroare 504 în WordPress: Cum se remediază
  • 12 sfaturi pentru a crea un plugin sau o temă WordPress Premium de succes
  • Cum să folosiți cachingul browserului în WordPress? Pași de urmat