Cum să implementați tipuri de postări personalizate și câmpuri personalizate în WordPress

Publicat: 2014-06-10

WordPress nu se mai limitează doar la blogging - este un sistem de management al conținutului complet capabil să afișeze și să formateze orice tip de conținut pe care îl oferiți. Deci, să vorbim despre două modalități excelente de a extinde WordPress: tipuri de postări personalizate și câmpuri personalizate.

Tipuri de postări personalizate

Se pare că site-ul nostru de testare, Monday Morning Mug (pe care l-am folosit în postarea de blog privind integrarea e-mailului), are o nouă problemă de rezolvat. Blogul nostru a devenit atât de mare încât am angajat un personal de evaluare a cafelei cu normă întreagă. Au fost ocupați cu prepararea cafelei și să scrie recenzii. Au postat aceste recenzii pe blog, dar cititorii noștri ne-au spus că toate aceste recenzii stau în calea conținutului nostru „adevărat” al blogului. Trebuie să facem un loc separat pentru recenziile noastre de cafea, dar paginile WordPress normale pur și simplu nu o vor reduce. De asemenea, recenzenții au sugerat că le-ar plăcea să aibă pe site un loc unde să stocheze cu ușurință informații, cum ar fi țara din care provine cafeaua și notele de degustare. Aceasta pare o utilizare perfectă pentru un tip de postare personalizat, o caracteristică WordPress care ne permite să creăm noi secțiuni de conținut pe site-ul nostru.

Tipurile de postări personalizate sunt incredibil de flexibile și pot fi implementate pentru orice tip de conținut: citatele, videoclipurile și diferitele nuanțe de vopsea sunt toate exemple de ceea ce ar putea fi un tip de postare personalizată.

Vom dori să adăugăm o nouă secțiune a site-ului nostru în subdirectorul /coffees/ care este plină de recenzii de cafea. Acest lucru va necesita un pic de dispută de cod, dar ar trebui să fie un proces relativ ușor.

Notă: Pentru a face acest lucru, va trebui să puteți edita fișierele .php din directorul de instalare WordPress, care de obicei necesită acces FTP/SFTP/SSH. Asigurați-vă că aveți acest lucru înainte de a continua.

Fiecare temă WordPress poate utiliza un fișier functions.php, care se află la:
/wp-content/themes/your_current_theme/functions.php
Acest fișier este utilizat în general pentru modificări ale site-ului specifice temei, precum și modificări mai mici ale site-ului personalizat, precum cea pe care urmează să o facem.

Notă: Vom adăuga cod în fișierul functions.php , ceea ce va însemna că este specific temei. Dacă adăugați acest lucru în fișierul functions.php și apoi schimbați tema în instalarea WordPress, veți elimina tipul de postare personalizat de pe site-ul dvs. web. Puteți menține tipuri de conținut personalizate utilizând un plugin, cum ar fi interfața de utilizare a tipului de postare personalizat.

1. Deschideți fișierul functions.php și adăugați următorul cod în partea de jos a fișierului:

function create_new_post_type() {
$labels = array(
'name' 			 => __('Coffee Reviews'),
'singular_name'  => __('Coffee Review'),
);
$args = array(
'labels'      	 => $labels,
'public' 	  	 => true,
'has_archive' 	 => true,
'menu_position'  => 5,
'description'    => 'Reviews And Types of Coffee',
'rewrite'     	 =>
array('slug' => 'reviews'),
'supports'    	 =>
array( 'title',
'comments', 'editor',
'thumbnail', 'custom-fields', 'revisions'),
);

register_post_type('Reviews', $args);
}
add_action('init', 'create_new_post_type');

Pentru că nu ne place în mod deosebit să folosim codul fără a avea o idee despre ceea ce face, haideți să vedem ce face acest cod.

Notă: S-ar putea să fi observat că $labels și $args sunt definite în afara funcției register_post_type() chiar dacă mai târziu sunt transmise ca argumente acelei funcție. Această metodă ajută la organizare și lizibilitate, dar puteți condensa ambele matrice într-un singur argument. Doar că ar fi mai greu de înțeles.

Matricea $args conține toate detaliile de care avem nevoie pentru a defini noul nostru tip de conținut. Iată ce fac acestea:

  • 'labels' – O matrice care definește ceea ce vom numi tipul nostru de conținut. Există multe mai multe etichete disponibile pe care le puteți utiliza, iar o listă completă este disponibilă în documentația de aici.
  • 'public' – O valoare booleană care definește dacă postarea este sau nu vizibilă în afara panoului de administrare.
  • 'has_archive' – Dacă este adevărat, acest boolean va crea o arhivă cu acest tip de postări personalizate, la fel ca postările standard WordPress.
  • 'menu_position' – Acest număr întreg modifică locul în care se află butonul de navigare personalizat în postare. Numărul 5 indică faptul că va merge direct sub fila de postări. Pentru o listă completă de coduri numerice, consultați aceeași documentație.
  • 'description' – Descrie tipul postării.
  • 'rewrite' – Aceasta schimbă slug-ul în „recenzii”, ceea ce va ajuta la crearea unei structuri de permalink utilizabilă. (Poate fi și boolean; verificați documentația pentru mai multe informații.)
  • 'supports' – O matrice care definește ce funcții native de editare/postări WordPress sunt activate. Acesta este destul de flexibil și există mult mai multe opțiuni, dar vom avea nevoie de cel puțin custom-fields și editor pentru această postare.

Funcția register_post_type() este numită next, care creează un nou tip de post numit Reviews folosind matricea de argumente pe care tocmai am definit-o.

În cele din urmă, trebuie să apelăm o ultimă funcție pentru a finaliza procesul. register_post_type() ar trebui să fie întotdeauna inițializat prin acțiunea „init”. Putem conecta noua noastră funcție la init prin apelare

add_action(‘init’, ‘create_new_post_type’);

Minunat! Acum, dacă ne conectăm la panoul nostru de administrare WordPress, ar trebui să vedem o nouă filă în stânga numită „Recenzii”.

cafea_recenzii

2. Acum că avem Recenzii configurate ca tip de postare personalizat, trebuie să actualizăm structura de permalink, astfel încât cititorii noștri să poată găsi cu ușurință postările noastre. În plus, face URL-urile noastre mult mai ușor de citit și prietenos cu SEO.

3. Sub bara de meniu Setări -> Permalinks, veți găsi o mulțime de opțiuni comune pentru structurile de permalink. Vom schimba setarea personalizată pentru a se potrivi cu câmpul /%category%/%postname%/

Aceasta înseamnă că WordPress va genera adrese URL care să se potrivească cu categoria și titlul postărilor noastre.

Notă: aceasta este o modificare la nivelul întregului site și vă va afecta postările din alte categorii.

personalizat_permalink

Acum să aruncăm o privire la adresa URL a unei postări scrise de recenzentii noștri pentru cafeaua Sumatra Ketiara:

sumatra_permalink

Fantastic! Verificați acea adresă URL. Avem recenzii separate în propriul director, iar URL-ul este scris în limba engleză simplă. Acum, cititorii noștri știu exact ce vor primi când fac clic pe un link.

câmpuri customizate

Deși recenzenții noștri adoră noua secțiune de recenzii, ne-au cerut să încorporăm ceva în spate care să le permită să introducă informații comune pe care le scriu despre fiecare cafea, cum ar fi țara de origine și notele de degustare. Aceasta sună ca utilizarea perfectă a câmpurilor personalizate, care, din fericire, sunt foarte ușor de implementat.

1. Pe un editor de recenzii individual, veți vedea butonul de opțiuni de ecran în colțul din dreapta sus al editorului:

screen_options

care se extinde la aceasta când se face clic:

screen_options_dropdown

2. Bifați caseta Câmpuri personalizate.

Sub editor, veți vedea caseta Câmpuri personalizate pe care tocmai am activat-o.

custom_fields_blank

3. Puteți introduce orice în ambele casete; orice tastați și adăugați în câmpul Nume va fi salvat pentru utilizare ulterioară. Aici, enumerăm zona și țara din care provine cafeaua noastră.

regiune_câmpuri_personalizate

Câmpurile personalizate fac incredibil de ușor standardizarea datelor care contează pentru o categorie în fiecare postare într-un loc separat. Acum trebuie doar să obținem acele informații pentru a fi afișate în recenzia noastră.

4. Vom adăuga această etichetă de cod la unul dintre documentele noastre tematice:

<br /><?php the_meta(); ?><br />

Notă: În acest exemplu, vom pune această etichetă în fișierul nostru content.php, dar va trebui să găsiți o locație potrivită pentru tabelul dvs. de valori. De asemenea, ar trebui să stilați această etichetă pentru a se potrivi cu restul temei, despre care puteți citi mai multe aici.

Revenind la blogul nostru, putem vedea că eticheta noastră a inserat o listă în recenzia noastră.

exemplu_câmp_personalizat

Chic! Acum, cititorii și recenzenții noștri sunt amândoi fericiți. Am reușit să construim un tip de postare personalizat care ne-a permis să salvăm recenzii despre cafea și am putut să le oferim recenzenților noștri un loc în care să stocheze toate informațiile lor importante pentru fiecare recenzie diferită.