Crearea corectă a unui șablon personalizat pentru pagina de blog
Doresc să creez un șablon personalizat pentru prezentarea postărilor de blog. Am observat că atunci când atribuiți o pagină pentru afișarea postărilor prin Setări > Citire, aceasta va folosi home.php pentru a afișa conținutul paginii - adică postările pe o pagină. De asemenea, opțiunea de a atribui un șablon de pagină în interfața de editare a paginii dispare.
În prezent, se afișează o vizualizare implicită articol cu articol. Vreau să ofer administratorului o altă opțiune de a selecta un șablon diferit care să stileze postările într-un layout de tip grilă sau masonry. Nu sunt sigur cum să fac asta.
Aș putea face acest lucru prin neatribuirea paginii pentru afișarea postărilor în zona de administrare Setări > Citire și apoi permițând utilizatorului administrator să atribuie șablonul specific paginii folosind meniul Atribute pagină în editarea paginii, dar conform https://make.wordpress.org/themes/2014/06/28/correct-handling-of-static-front-page-and-custom-blog-posts-index-template/, acesta este modul INCORECT.
Am încercat să caut soluții pe Google, dar tot ce găsesc sunt recomandări de plugin-uri de utilizat. Poate cineva să mă îndrume către niște resurse utile?

Nu uitați că WordPress a fost conceput în primul rând ca un CMS pentru bloguri, așa că atunci când vine vorba de dezvoltarea de teme, dezvoltatorii optează adesea pentru o abordare non-standard în schimbul potențialului de a avea mai multe funcționalități.
Dezvoltatorii de teme au trei opțiuni atunci când abordează acest lucru, dintre care una (#2 de mai jos) pe care ai menționat-o.
Editarea directă a fișierului
index.php
pentru a modifica indexul blogului. Aceasta nu este o opțiune bună deoareceindex.php
ar trebui să fie un fallback în cazul în care o altă parte a șablonului tău lipsește.- Avantaje: rapid și ușor
- Dezavantaje: predispus la erori și contrar principiilor orientate pe obiect
Crearea unui șablon de pagină pentru indexul blogului. După cum ai spus, mulți dezvoltatori de teme aleg această rută deoarece este o modalitate rapidă de a-ți oferi control asupra indexului blogului și chiar îți oferă posibilitatea de a experimenta cu diferite șabloane pentru indexul blogului (ceea ce este util atunci când dezvolți o temă versatilă).
- Avantaje: Versatil, permite construirea unei teme robuste
- Dezavantaje: pierzi abilitatea de a apela funcționalitățile native ale WordPress care se referă la indexul blogului.
Crearea fișierelor
front-page.php
,home.php
șiindex.php
în tema ta.front-page.php
va fi pagina principală a temei.home.php
va fi implicit indexul blogului, iarindex.php
va fi fallback-ul pentru toate șabloanele.- Avantaje: Curat și utilizează pe deplin obiectele și metodele native ale WordPress
- Dezavantaje: Limitările impuse de WordPress: nu este ideal pentru multe dintre temele bogate în opțiuni pe care le vedem astăzi
Personal, prefer să merg pe varianta #2, deoarece majoritatea proiectelor mele de dezvoltare WordPress din ultima vreme nu sunt doar bloguri: sunt site-uri întregi cu arhitectură complexă de informații și interactivitate avansată.

Documentația pentru această funcționalitate: https://developer.wordpress.org/themes/basics/template-hierarchy/#home-page-display

Voi acoperi mai multe aspecte în răspunsul meu. :)
Dacă creezi propria temă și dorești să modifici modul implicit de afișare a anumitor tipuri de pagini (de exemplu, pagina de arhivă a categoriei sau pagina unui singur articol de blog), atunci verifică diagrama ierarhiei de șabloane WordPress. Aceasta arată care fișiere din directorul temei tale sunt utilizate pentru afișarea diferitelor tipuri de postări.
Prin crearea unui fișier php în tema ta care se potrivește cu un fișier din acea ierarhie, acesta va fi utilizat automat de WordPress—cum ar fi single.php
pentru afișarea unei singure postări. Dacă ai o temă care are deja acest fișier, atunci evident că poți să-l modifici și schimbările se vor reflecta pe site.
Dacă dorești să ai șabloane personalizate de pagini, dar vrei ca doar un administrator să le poată modifica (pe bază de postare individuală), atunci trebuie să faci niște verificări pe roluri și capacități; acest răspuns de pe StackExchange poate fi util. (Tot va trebui să creezi acele șabloane personalizate de pagini, vezi acest articol de la Smashing Magazine).
Dacă, în schimb, vrei ca un administrator să poată alege global șabloane de pagini/postări pe baza anumitor criterii sau să aleagă șabloane personalizate pentru întregul site, atunci va trebui să adaugi o opțiune în zona de administrare a temei tale și niște cod personalizat în tema ta pentru a afișa pagina corectă în funcție de acea opțiune. Adăugarea unei opțiuni în zona de administrare poate fi realizată ușor cu unul dintre numeroasele plugin-uri, dar poate fi făcută și manual (vezi, de exemplu, acest articol de pe SitePoint).

Mulțumesc pentru răspuns. Sunt conștient de cum să creez șabloane de pagini pentru pagini/articole bazate pe ierarhie, dar nu reușesc să găsesc o modalitate de a oferi opțiuni de șabloane pentru "Pagina de Index a Articolelor din Blog" care folosește home.php (folosind aceeași terminologie ca în diagrama pe care ai furnizat-o). Aceasta este setată când un utilizator administrator alege o pagină pentru afișarea articolelor în Panou de control > Setări > Citire. Apoi, aceasta atribuie pagina home.php/index.php. Nu reușesc să găsesc o modalitate de a crea un șablon alternativ fără a NU atribui pagina în Panou de control > Setări > Citire.

@RyanCoolwebs Probabil ar trebui să adaugi o opțiune de administrare în tema ta care să permită alegerea între stiluri de afișare pentru pagina de index a articolelor din blog, apoi să editezi home.php pentru a citi valoarea opțiunii și a afișa varianta corespunzătoare a paginii.

Bine, deci vrei să creezi propria pagină șablon pentru afișarea articolelor de blog, corect?
Atunci procedează în felul următor: creează un fișier PHP numit blog-template.php
În interiorul acelui fișier, pune acest cod în partea de sus, înainte de orice altceva.
<?php
/*
* Șablon Pagină: Postare Blog
*/
?>
Apoi, sub codul menționat mai sus, inserează tot codul din fișierul index.php/home.php
în această pagină, salvează fișierul și acum creează o pagină din panoul de administrare
. Dă-i un nume, de exemplu "Blog"
. Acum, din partea dreaptă, alege șablonul de pagină
pe care tocmai l-am creat, adică Postare Blog
din meniul derulant al șabloanelor.
Publică pagina și ești gata să ai propria pagină pentru afișarea postărilor tale.
Spune-mi dacă mai ai nevoie de altceva.

OK, deci doar ai reformulat soluția pe care OP a declarat-o în mod clar ca fiind greșită ;) Crearea unui șablon de pagină și folosirea lui ca index de blog nu este cea mai bună abordare, cred.
