Obțineți maximum de formate postate Utilizarea formatelor de post în buclă

În prima parte a acestei serii am discutat despre ce formate postate și de ce ar trebui să le utilizați. Acum este timpul să înveți cum să folosești formate postate pentru a controla bucla principală din tema ta pentru a afișa fiecare tip de post corect.


Activarea formatelor de postare

Înainte de a putea utiliza formatele de postare într-o temă, trebuie să înregistrați suport pentru ele. Fiecare tip de post, încorporat (adică postări și pagini) sau tipuri personalizate de posturi trebuie să aibă suport pentru tipurile de posturi înregistrate separat. 

Pentru postările pe care le utilizați funcția add_theme_support () ca parte a setării temei în functions.php, asa:

add_action ('after_setup_theme', 'slug_post_formats'); funcția slug_post_formats () add_theme_support ('post-formats', array ('în afară', 'imagine', 'video', 'audio', 'quote', 'link', 'galerie');); 

Pentru alte tipuri de posturi, inclusiv pagini și tipuri personalizate de postări, ați folosi add post_type_support (). Dacă doriți ca paginile să sprijine aceleași formate de postare pe care le postați, pur și simplu le-ați spune WordPress că doriți să vă placă acest lucru:

add_post_type_support ("pagină", ​​"postformate");

Puteți utiliza un cod similar pentru a adăuga suport pentru tipurile personalizate de postări sau dacă adăugați "postformații" în argumentul "acceptă" în register_post_type () când creați tipul postării.

Diferite formate postate pentru diferite tipuri de posturi

În secțiunea anterioară, codul pe care l-am arătat, ați adăugat suport pentru alte posturi, aceleași formate de postare care au fost activate pentru postări. Dacă doriți ca tipul dvs. de post personalizat să accepte diferite formate de postare, este posibil să le utilizați add_post_type_support () prin simpla trecere la o serie de formate postate.

De exemplu, pentru a adăuga suport pentru galerii și imagini către pagini, în timp ce adăugați un videoclip unui tip de post personalizat numit "produse" și toate formatele postate în postări, ați face acest lucru:

add_action ('after_setup_theme', 'slug_post_formats'); funcția slug_post_formats () add_theme_support ('post-formats', array ('în afară', 'imagine', 'video', 'audio', 'quote', 'link', 'galerie');); add_post_type_support ("pagini", "post-formate", array ("galerie", "imagine")); add_post_type_support ("produse", "post-formate", array ("video")); 

Utilizarea formatelor de post în buclă

Acum că tema dvs. acceptă formate postate, este timpul să aflați cum să le utilizați.

Introducerea gamei get_template_part ()

Ceea ce face formatele postate cool este că putem avea o singură buclă principală, cu marcajul nostru diferit pentru fiecare format de post în fișiere separate. Această funcționalitate este datorată a două funcții, prima dintre care trebuie să vă familiarizați este get_template_part ().

În timp ce nu se folosește require (), dacă urmăriți destul de mult în codul sursă, get_template_part () ne oferă un mod mai flexibil și mai iertător de a include fișiere șablon în alte șabloane pe care nu le primim require (). Spun iertarea pentru că, spre deosebire de require (), get_template_part () poate lucra cu căi de fișiere care nu există.

De exemplu, get_template_part ('conținut', 'foo'); va încerca să încarce fișierul Conținutul-foo.php, dar dacă nu există, va încerca să se încarce content.php in schimb. In contrast, solicitați ('content-foo.php'); va reveni la o eroare dacă Conținutul-foo.php nu există, dacă content.php există sau nu.

Ține minte că get_template_part () este adaptat pentru această utilizare specifică, deoarece încarcă fișiere în raport cu rădăcina temei curente. Ca urmare, nu este necesar să utilizați get_template_directory_uri () sau orice alte funcții similare pentru a specifica calea. Puteți utiliza în continuare pentru a încărca fișiere în subdirectoarele din directorul principal al temei, specificând calea, în raport cu rădăcina temei, în primul argument. De exemplu, pentru încărcare Conținutul-main.php dintr-un subdirector numit "piese" pe care le-ați folosi get_template_part ('parts / content', 'principal');.

Introducerea formulei get_post_format ()

A doua funcție care face acest lucru este posibilă get_post_format (), care returnează formatul post pentru postul curent în buclă. În timp ce are multe utilizări, această funcție principală este folosită ca argument pentru get_template_part (). Este ceea ce ne permite să includem părți de conținut specifice postului, după cum vom vedea în secțiunea următoare.

Din cauza flexibilității get_post_format () discutate în ultima secțiune, pe care o putem folosi get_post_format () ca unul dintre argumentele sale, chiar dacă nu există o parte de conținut în temă pentru toate formatele postale în uz.

Includerea pieselor șablon în buclă

Acum, că înțelegeți cele două funcții care fac posibile părți de conținut specifice formatului de post, să le punem împreună. 

Aruncați o privire la bucla principală din Twenty Fourteen:

După cum puteți vedea, aceasta este o buclă foarte simplă. Marcajul efectiv pentru posturi este conținut în părțile individuale de conținut. Din cauza caracterului iertător al get_template_part () dacă o parte de conținut pentru un anumit format de post nu există, WordPress va reveni la content.php. Aceasta înseamnă că, dacă postarea curentă are formatul "video", WordPress va încerca mai întâi să se încarce Conținutul-video.php, și dacă acest lucru nu este găsit, atunci acesta se va opri content.php.

Teme pentru copii și părți de conținut

Așa cum am spus mai devreme, get_template_part () este tema copilului conștientă. Aceasta înseamnă că WordPress va căuta mai întâi un fișier în folderul temei copilului înainte de tema părinte, dacă este utilizată o temă copil.

Ca rezultat, este o practică bună de utilizat get_template_part ('conținut', get_post_format ()); pentru a include bucla principală în pagina dvs., chiar dacă tema dvs. nu acceptă formate postale. În acest fel, o temă a copilului poate declara sprijin pentru un format post și poate adăuga propriile părți de conținut pentru formatele postate pe care le acceptă.


Mergi pe Forth și Format Posts

Acum, că știți cum să adăugați suport pentru tema dvs. pentru formate postate și să setați diferite părți ale șablonului în funcție de formatul postului, este timpul să începeți să vă gândiți cum să le folosiți în tema dvs. Voi studia cum să procedez în restul seriei. Asigurați-vă că verificați, de asemenea, codul de teme, cum ar fi Twenty Fourteen, care pun în aplicare formatele postate pentru a vă inspira.

Cod