Använda SuperCPT för att skapa anpassade inläggstyper, taxonomier och meta-rutor

Med versionen av version 3.0 introducerade WordPress anpassade posttyper och uppdaterade anpassade taxonomier som introducerades i v2.8. Sedan dess har WordPress-användare och utvecklare möjlighet att skapa egna posttyper och taxonomier. Människor är inte längre kedjad till de tråkiga "inläggen" och "sidorna" med de tråkiga "kategorierna" och "taggarna".

Ja, med hjälp av anpassade posttyper, anpassade taxonomier och anpassade metakassetter är de coola. Vet du vad som är kallare? Skapa var och en med en enda kodrad.


Problemet med att skapa anpassade inläggstyper och taxonomier

Jag tycker det är svårt och tråkigt att skapa egna posttyper och taxonomier med register_post_type () och register_taxonomy () funktioner. Medan de är mycket användbara, hatar jag det ganska när jag måste skriva en massa argument och ge dem en funktion som jag också måste använda med add_action () fungera.

Även som utvecklare är det smärtsamt att göra detta med varje posttyp och taksonomi jag måste skapa - jag kan inte föreställa mig hur svårt det är för nybörjare WordPress-användare.

Får inte fel, du kan eller måste även göra dem med SuperCPT också, men SuperCPT omfattar principen DRY (Repeat Yourself) och förenklar processen. Praktiskt taget måste du bara ange det små bokstäverna "singular name" för din posttyp eller taxonomi och SuperCPT hanterar resten med korrekt kapitalisering.

Och det bästa är att du inte behöver hantera roten att skapa anpassade metakasser och metafält i dem!

SuperCPT kan du skapa metakasser med fält som varierar mellan enkla HTML-element från WYSIWYG-redaktörer och datumplockare. Att låta oss göra allt detta genom att skriva enkla arrays är överlägset det enklaste sättet jag någonsin sett för att skapa metakasser.


Använda SuperCPT, Allt-i-ett-lösningen

Jag kan berömma SuperCPT hela dagen men som skaparen Matthew Boynes sa på SuperCPTs GitHub-sida, Beviset är i pudding och vi borde komma till exemplen - strax efter att vi ser en fantastisk fem minuters skärmdump.

Ta en kopia från WordPress.org Plugin Repository, installera den och öppna sedan ditt temas functions.php fil till jobbet SuperCPTs magi!

Screencast

http://vimeo.com/59368054

Skapa anpassade inläggstyper

Som du kan se på videon är det enkelt att skapa egna posttyper som att skriva en rad kod:

  array ('name' => __ ('Dator delar', 'my-local'), 'singular_name' => __ ('Datordel', 'my-locale')), 'public' => true, 'has_archive '=> sant,)); * / // SuperCPT-metoden $ type_computer_part = ny Super_Custom_Post_Type ('dator-del'); ?>

SuperCPT tar automatiskt "dator-delen"och tar bort bindestreck och understreck och kapitaliserar varje ord. Det anger också "singular" och "plural" former av "dator-delen"och använder dem för att bilda etiketterna, som" Lägg till ny datordel "eller" Sök datorns delar "och så vidare.

Naturligtvis kan du ställa in några etiketter som du vill. Faktum är att du kan ställa in alla argument som register_post_type () har, om du gillar att leka. Gå vidare till SuperCPT Wiki-avsnittet "Anpassade posttyper" för att få reda på hela listan med argument och deras standardvärden.

SuperCPT innehåller en gratis ikonuppsättning som heter Glyphicons för att du ska ange ikoner för dina inläggstyper. Det är lika enkelt att skriva en annan kodlinje: $ type_computer_part-> set_icon ('display'); Om du undrar vad du ska använda som parameter, kolla SuperCPT-sidan under administratörspanelens verktyg - du hittar namnen på ikonerna.

Skapa anpassade taxonomier

Att skapa anpassade taxonomier med SuperCPT är mycket som att skapa anpassade posttyper. Återigen är en enda rad tillräcklig för SuperCPT:

  __ ("Tillverkare", "my-local"), "rewrite" => array ("slug" => __ ("tillverkare", "my-locale")))); * / // SuperCPT-metoden $ tax_manufacturer = ny Super_Custom_Taxonomy ("tillverkare"); ?>

Som med de anpassade posttyperna ställs de anpassade taxonomiens argument automatiskt in, men kan också ändras. Kontrollera SuperCPT Wiki-sektionen "Anpassade inläggstyper" för att få reda på mer om argument.

Som du kan gissa: den här raden av kod ovan kan inte koppla din anpassade taxonomi till en posttyp. Du behöver göra det med hjälp av SuperCPT, så här: $ tax_manufacturer-> connect_post_types ('computer-part');

Skapa Custom Meta Boxes

Spänna upp, det här är min favoritdel! :)

Allvarligt är den bästa delen av SuperCPT lätt att lägga till anpassade postmeta-lådor. Du behöver inte röra med några HTML-koder eller oroa dig för att dina data sparas, saneras och whatnot. Men vi kan inte använda enradiga koder för att skapa metakasser den här gången (självklart).

Det finns två viktiga funktioner: add_meta_box () och add_meta_boxes (). (Vi kommer att hålla fast vid den första för denna handledning.) The id och fält parametrar krävs men det finns en massa andra parametrar på wikien om du vill se.

 add_meta_box (array ('id' => 'vår recension', // titeln är konverterad från 'id', om det inte finns någon 'title' parameter 'fält' => array ('score' => array => __ ('Vårt betyg', 'my-local'), 'typ' => 'radio', 'options' => array ('1', '2', '3', '4', '5 ')),' release-date '=> array (' label '=> __ (' Release Date ',' my-locale '),' typ '=>' datum '), // ja, det finns ett datum plockare ... 'short-comment' => array ('label' => __ ('En kort kommentar', 'my-locale'), 'typ' => 'textarea'), 'review-text' => array 'label' => __ ('Full Review', 'my-local'), 'typ' => 'wysiwyg') // ... och det finns ett WYSIWYG-textområde! :)))); ?>

Nu vet jag att det finns massor av arrays, men det finns saker som även SuperCPT kan förutsäga, eller hur? :)

Det finns många fältelement du kan placera i metakassorna:

  1. Dolda booleska fält
  2. Vanliga textinmatningar
  3. Vanliga textområden
  4. WYSIWYG redaktörer
  5. kryss~~POS=TRUNC
  6. Radio lådor
  7. Markera rutor
  8. Datumplockare
  9. Och de nya HTML5-inmatningsfälten som: tel, email etc.
Vi kan också dra data från andra anpassade posttyper och fylla i kryssrutan, radiofältet eller välj rutfält med denna data. Detta kan vara mycket användbart för vissa fall!

Wrapper-funktionen

En sista sak: Du behöver en omslagsfunktion för att ställa in dessa anpassade posttyper och koppla den funktionen till en åtgärd - SuperCPT rekommenderar after_setup_theme krok men om du ska skriva ett plugin för att skapa anpassade posttyper och taxonomier, använder du bättre kroken plugins_loaded att vänta på plugins att ladda. Du måste också vara säker på Super_Custom_Post_Type klassen existerar före hänvisning.

Här är demo-wrapper-funktionen från SuperCPT-dokumentationen:

 

Slutsats

Där vet du allt om den enklaste anpassade posttypen och taxonomistyraren SuperCPT! För mer information, kolla in hela dokumentationen. Det finns en massa hjälpfunktioner, åtgärder och filter som du kanske vill.

Vad tycker du om det här coola WordPress-plugin? Berätta vad du tycker genom att kommentera nedan, och om du gillade det (jag är ganska säker på att du kommer!), Glöm inte att dela inlägget!