Comunitatea WordPress vibrează cu entuziasm asupra WordPress 3.0, care va fi lansat în curând. În prezent, în Beta 2, WordPress 3.0 va avea o mulțime de funcții noi, cum ar fi o nouă temă implicită și o gestionare mai bună a meniului. Destul de cele mai interesante dintre aceste caracteristici sunt tipurile personalizate de posturi. În acest tutorial, vom vorbi despre crearea și utilizarea tipurilor de mesaje personalizate pentru a crea o temă solidă.
Ei bine, conform Codului WordPress:
"Tipul postului se referă la diferitele date structurate care sunt păstrate în tabelul cu mesaje WordPress. Tipurile personalizate de posturi permit utilizatorilor să creeze și să gestioneze cu ușurință lucruri precum portofolii, proiecte, biblioteci video, podcast-uri, citate, chat-uri și orice alt utilizator sau dezvoltator pot imagina. "
În esență, ne permite dezvoltatorilor să facă noi tipuri de postări similare cu posturile și tipurile de pagini, toate acestea apar în navigarea principală din administratorul WordPress. Există mai multe avantaje pentru acest lucru; mai ales că nu mai avem nevoie de pluginuri pentru a crea tipuri speciale, putem construi o temă care se bazează mai puțin pe câmpurile personalizate (așa cum le cunoaștem) și fac mai ușor gestionarea site-ului pentru clienți și utilizatori non-tehnici. În loc să le spuneți acestora să creeze un "post" și să vă asigurați că ați completat toate tipurile de câmpuri personalizate, de exemplu, muzică, le putem spune pur și simplu să facă clic pe "Muzică" pentru a adăuga o nouă postare muzicală.
În acest tutorial vom:
Toate acestea se vor face din fișierul functions.php al temei noastre. Modifică tema implicită 3.0, TwentyTen.
Primul lucru pe care îl vom face este să spunem WordPress că dorim să înregistrăm un nou tip personalizat. Iată codul:
add_action ('init', 'product_register'); funcția product_register () $ args = array ('label' => __ ('Produse'), 'singular_label' => __ ('Product'), 'public' => true, '=>' post ',' hierarchical '=> false,' rewrite '=> true,' suporta '=> array (' title ',' editor ',' thumbnail ')); register_post_type ('produs', $ args);
Prima linie este un cârlig pentru a spune WordPress că dorim să apelam funcția product_register ()
în timpul inițializării. În această funcție se înregistrează noul tip de postare.
Functia register_post_type ()
acceptă două argumente: numele pe care dorim să-l oferim tipului nostru de post și o listă de argumente utilizate pentru a crea acel tip de post, pe care le punem într-un matrice numită $ args
. Puteți citi exact care sunt toate argumentele, dar vreau să subliniez cele importante.
Să adăugăm propriile noastre intrări personalizate pentru noul nostru tip. Deoarece acum putem crea noi tipuri de posturi, putem face ca câmpurile personalizate să fie mai eficiente pentru utilizatorii care ar putea să nu fie la fel de familiarizați cu WordPress ca și noi. Merită menționat faptul că această funcționalitate a fost disponibilă încă de la data de 2.5 și până în acest moment, fiind folosită în principal de dezvoltatorii de plugin-uri. Aici vom adăuga un câmp de prețuri.
ID); $ price = $ personalizat ["preț"] [0]; ?> ID, "preț", $ _POST ["preț"]); ?>
Încă o dată, primele două linii sunt cârlige pentru a spune WordPress când vrem să folosim anumite funcții. Prima linie spune că atunci când panoul de administrare este inițializat, apelați funcția pe care am scris-o, admin_init ()
. Această funcție îi spune WordPress să adauge o zonă numită "Opțiuni de produs" în orice post de tip "produs" și să folosească funcția meta_options ()
pentru a imprima câmpurile de formular. Puteți citi mai multe despre add_meta_box aici. meta_options ()
va primi apoi toate valorile personalizate preexistente și va tipări câmpul de formular. A doua linie de acțiune afirmă că atunci când un post este salvat, sunați la funcția noastră save_price ()
, care utilizează update_post_meta ()
pentru a adăuga sau a actualiza un câmp personalizat numit "preț".
Ultimul nostru pas în crearea unui tip complet personalizat este oferirea de nume unice categoriei sale și editarea etichetelor coloanelor. În primul rând, numele categoriei personalizate sau "taxonomia".
register_taxonomy ("catalog", array ("product"), array ("hierarchical" => true, "label" => "catalogs", "singular_label" => "catalog", rewrite = true));
Funcția pe care o folosim este register_taxonomy ()
, pe care îl puteți găsi în codul de aici; a fost disponibil de la 2.8. În esență, spunem că vrem să creăm un nou tip de categorie denumit "catalog" pe care îl vom asocia cu tipul de "produs". Ultimul argument este o serie de informații similare cu cele pe care le-am văzut register_post_type ()
funcţie. Cand totul este spus si facut, vom avea termenul 'Catalog' apare sub meniul nostru de produse din adminul WordPress si se va comporta ca si Categoriile Post.
Apoi, dorim să creăm un set personalizat de coloane pentru tipul de produs.
add_filter ("manage_edit-product_columns", "prod_edit_columns"); add_action ("manage_posts_custom_column", "prod_custom_columns"); funcția prod_edit_columns ($ coloane) $ columns = array ("cb" => ""," description "=>" Descriere "," price "=>" Preț "," catalog "=>" Catalog " coloană) global $ post; comutare (coloană $) caz "descriere": the_excerpt (); pauză; "price" caz: $ custom = get_post_custom (); caz "catalog": echo get_the_term_list ($ post-> ID, 'catalog', ',', ','); break;
Primele două linii sunt cârlige pentru a spune WordPress că dorim coloane personalizate pentru tipul de "produs". Prima linie spune că atunci când tipăriți coloane pentru tipul de produs, utilizați cele definite în funcție prod_edit_columns ()
.
În prod_edit_columns ()
, avem o matrice de valoare cheie unde cheile sunt folosite pentru a face referire la anumite informații post, pe care le definim în a doua funcție, prod_custom_columns ()
. Valorile din acea matrice sunt titlurile coloanelor. S-ar putea să observați asta prod_edit_columns ()
afișează cinci coloane, dar descriem numai informații de afișare pentru trei intrări prod_custom_columns ()
. "cb" și "title" fac parte dintr-un set de chei predefinite pe care WordPress le are deja asociații. WordPress nu știe ce alte trei sunt, deci depinde de noi să le definim.
Nu e prea ciudat, nu? Și acum suntem în sfârșit la distracție - tema tematică. Pentru a crea un șablon de temă pentru un tip de post personalizat, pur și simplu denumim șablonul singular-
ID); $ price = "$". $ Personalizată [ "preț"] [0]; ?>>- =$price?>
Am adăugat acest cod temei Twentyten în WordPress 3.0 Beta, deoarece este singura temă care acceptă noua funcție - și anume sistemul de meniuri. Am copiat șablonul single.php, am redenumit produsul single-product.php și l-am înlocuit pe toate în "content" div cu codul de mai sus. Pentru a-mi testa codul, m-am dus la Themes-> Menus și am adăugat noul nostru tip pe navigația site-ului meu. Apoi, am făcut clic pe tipul nostru de post personalizat.
Înfășurarea în sus
După cum am spus anterior, WordPress 3.0 este încă în versiune beta (îl puteți obține aici); astfel încât există încă unele bug-uri pentru a lucra și unele lucruri se pot schimba în versiunea finală. Cel mai bun lucru pe care îl puteți face este să intrați acolo și să jucați cu unele dintre noile caracteristici pentru a vă familiariza cu actualizările / modificările. Din ceea ce am văzut până acum, lucrurile arată destul de bine!