Bruke SuperCPT til å lage egendefinerte innleggstyper, taksonomier og meta-bokser

Med utgivelsen av versjon 3.0 introduserte WordPress egendefinerte innleggstyper og oppdaterte egendefinerte taksonomier som ble introdusert i v2.8. Siden da er WordPress-brukere og utviklere i stand til å lage egne posttyper og taksonomier. Folk er ikke lenger Lenket til de kjedelige "innleggene" og "sidene" med kjedelig "kategorier" og "tagger".

Ja, bruk av egendefinerte innleggstyper, egendefinerte taksonomier og tilpassede meta-bokser er kule. Du vet hva som er kulere? Opprett hver med en enkelt linje med kode.


Problemet med å skape tilpassede posttyper og taksonomier

Jeg finner det vanskelig og kjedelig å lage egendefinerte innleggstyper og taksonomier med register_post_type () og register_taxonomy () funksjoner. Mens de er ekstremt nyttige, hater jeg det slags når jeg må skrive en rekke argumenter og sende dem med en funksjon som jeg også må bruke med ADD_ACTION () funksjon.

Selv som utvikler er det vondt å gjøre dette med hver enkelt posttype og taksonomi jeg må lage - jeg kan ikke forestille meg hvor vanskelig det er for nybegynnere WordPress-brukere.

Ikke misforstå, du kan eller må også gjøre dem med SuperCPT også, men SuperCPT overholder DRY (Do not Repeat Yourself) prinsippet og letter prosessen. Praktisk sett må du bare angi små bokstaver "Singular Name" av posttypen eller taksonomien, og SuperCPT håndterer resten med riktig kapitalisering.

Og det beste er at du ikke trenger å håndtere rotet med å skape tilpassede metakasser og metafelt i dem!

SuperCPT lar deg lage metakasser med felt som varierer mellom enkle HTML-elementer fra WYSIWYG-redaktører og datovalgere. Å la oss gjøre alt dette ved å skrive enkle arrays er langt den enkleste måten jeg noensinne har sett for å lage metakasser.


Bruke SuperCPT, Alt-i-ett-løsningen

Jeg kan rose SuperCPT hele dagen, men som skaperen Matthew Boynes sa på SuperCPTs GitHub-side, Beviset er i pudding og vi bør komme til eksemplene - like etter at vi ser en fantastisk, fem minutters screencast.

Ta en kopi fra WordPress.org Plugin Repository, installer den og åpne temaet ditt functions.php fil til jobb SuperCPTs magi!

The Screencast

http://vimeo.com/59368054

Opprette egendefinerte innleggstyper

Som du kan se på videoen, er å lage egendefinerte innleggstyper like enkelt som å skrive en linje med kode:

  array ('name' => __ ('Computer Parts', 'my-local'), 'singular_name' => __ ('Computer Part', 'My-Locale')), 'public' => true ', har_archive '=> sant,)); * / // SuperCPT-metoden $ type_computer_part = ny Super_Custom_Post_Type ('datamaskin-del'); ?>

SuperCPT tar automatisk "PC-delen"og fjerner bindestreker og understreker og kapitalisere hvert ord. Det setter også "singular" og "flertall" former for "PC-delen"og bruker dem til å danne etikettene, som" Legg til ny datamaskindel "eller" Søk datamaskindeler "og så videre.

Selvfølgelig kan du sette noen etiketter som du vil. Faktisk kan du sette alle argumentene som register_post_type () har, hvis du liker å leke rundt. Gå over til SuperCPT Wiki's "Custom Post Types" -avsnitt for å finne ut hele listen over argumenter og deres standardverdier.

SuperCPT inneholder et gratis ikonsett som heter Glyphicons, slik at du kan angi ikoner for posttypene dine. Det er like enkelt som å skrive en annen linje med kode: $ type_computer_part-> set_icon ('display'); Hvis du lurer på hva du skal bruke som parameter, sjekk SuperCPT-siden under administrasjonspanelets verktøy - du finner navnene på ikonene.

Opprette egendefinerte taxonomier

Opprette egendefinerte taksonomier med SuperCPT er mye som å skape egendefinerte innleggstyper. Igjen er en enkelt linje nok for SuperCPT:

  __ ('Produsenter', 'my-locale'), 'rewrite' => array ('slug' => __ ('produsent', 'my-locale')))); * / // SuperCPT-metoden $ tax_manufacturer = ny Super_Custom_Taxonomy ('produsent'); ?>

Som med de egendefinerte innleggstyper, settes tilpassede taksonomieres argumenter automatisk, men kan også endres. Se SuperCPT Wiki's "Custom Post Types" -avdeling for å finne ut mer om argumenter.

Som du kan gjette: Denne ene linjen med kode ovenfor kan ikke koble din egendefinerte taksonomi til en posttype. Du må gjøre det med en hjelperfunksjon av SuperCPT, slik: $ tax_manufacturer-> connect_post_types ('computer-part');

Opprette egendefinerte Meta-bokser

Spenne opp, dette er min favorittdel! :)

Alvorlig, den beste delen om SuperCPT er enkelheten til å legge til tilpassede innleggmeta-bokser. Du trenger ikke å rote med noen HTML-koder eller bekymre deg for at dataene dine blir lagret, sanert og hva som ikke. Selv om vi ikke kan bruke enkeltlinjekoder for å lage meta-bokser denne gangen (åpenbart).

Det er to viktige funksjoner: add_meta_box () og add_meta_boxes (). (Vi skal holde fast med den første for denne opplæringen.) The id og Enger parametere er påkrevd, men det er en rekke andre parametre på wiki hvis du vil se.

 add_meta_box (array ('id' => 'vår anmeldelse', // tittelen er konvertert fra 'id', hvis det ikke er noen 'title' parameter 'fields' => array ('score' => => __ ('Vårt poeng', 'my-locale'), 'type' => 'radio', 'options' => array ('1', '2', '3', '4', '5 ')),' release-date '=> array (' label '=> __ (' Utgivelsesdato ',' my-locale '),' type '=>' dato '), // ja, det er en dato plukker ... 'short-comment' => array ('label' => __ ('En kort kommentar', 'my-locale'), 'type' => 'textarea'), 'review-text' => array 'label' => __ ('Full gjennomgang', 'my-locale'), 'type' => 'wysiwyg') // ... og det er et WYSIWYG-tekstområde! :)))); ?>

Nå vet jeg at det er mange matrises, men det er ting som selv SuperCPT kan forutsi, ikke sant? :)

Det er mange feltelementer du kan plassere i meta-boksene:

  1. Skjulte booleanfelt
  2. Vanlige tekstinnganger
  3. Vanlige tekstområder
  4. WYSIWYG redaktører
  5. boksene
  6. Radio bokser
  7. Velg bokser
  8. Datoplukkere
  9. Og de nye HTML5-feltene som: tel, e-post osv.
Vi kan også trekke data fra andre egendefinerte innleggstyper og fylle av i avkrysningsruten, radioboksen eller velg boksfelter med disse dataene. Dette kan være svært nyttig i noen tilfeller!

Wrapper-funksjonen

En siste ting: Du trenger en wrapper-funksjon for å sette disse egendefinerte innleggstyper og koble den funksjonen til en handling - SuperCPT anbefaler after_setup_theme krok men hvis du skal skrive et plugin for å lage egendefinerte innleggstyper og taksonomier, bruker du kroken bedre plugins_loaded å vente på at pluginene skal lastes inn. Du må også være sikker på at Super_Custom_Post_Type Klassen eksisterer før du refererer til den.

Her er demo-wrapper-funksjonen fra SuperCPT-dokumentasjonen:

 

Konklusjon

Der, nå vet du alt om den enkleste egendefinerte posttypen og taksonominsjefen, SuperCPT! For ytterligere informasjon, se full dokumentasjon. Det er en mengde hjelpefunksjoner, handlinger og filtre du kan like.

Hva synes du om dette kule WordPress-plugin? Fortell oss hva du synes ved å kommentere nedenfor, og hvis du likte det (jeg er ganske sikker på at du vil!), Ikke glem å dele innlegget!