Innovative bruksområder av WordPress Posttyper og Taxonomies

Med utgivelsen av Wordpress 3.0 ble to gode måter å bedre organisere og vise innhold innført: posttyper og taksonomier. Disse to fremskrittene forbedrer Wordpress rolle som et allsidig content management system, og de fortsetter å bevise at WP ikke bare er en bloggplattform. Når 3.1 utgives med innleggformater, er det viktig at du forstår hvordan du bruker og implementerer posttyper og taksonomier.


Hva vi skal dekke

I denne opplæringen vil jeg snakke deg gjennom følgende:

  • Oversikt over posttyper og taksonomier i Wordpress 3.0
  • Hvordan integrere posttyper og taksonomier i temaene dine
  • Eksempler på ekte verden av hvordan du bruker posttyper og taksonomier på innovative måter i prosjektene dine

Når du har fullført disse trinnene, håper jeg å få drivstoff på prosjektene dine ved å undersøke andre fantastiske måter å integrere disse organisatoriske elementene i WordPress.


Et raskt oversikt over WordPress-posttyper

Når du tenker på posttyper, er det viktige ordet å huske organisasjon. Innleggstypen selv vil ikke legge til noen funksjonalitet, men det tillater oss å bedre organisere Wordpress-innhold og bygge admin-oversikter som er mer spesifikke for typen nettsted som vi jobber med.

Her er noen viktige ting å huske når du arbeider med posttyper:

  • Når du oppretter en ny posttype, vises et nytt øverste nivå nav-element i hovedmenyen for venstre side. Derfra er alle standardpost- og sideditorene tilgjengelige.
  • URL-strengen for en ny posttype vil være: http://yoursite.com/post-type/title/.
  • Du kan lage arkiv for posttype arkiv som du gjør med kategorier, og du kan til og med lage spesielle malfiler ved å lage en arkiv- (posttype) .php-fil.

"På samme måte som innlegg vises i eget arkiv med archive.php, vil egendefinerte innleggstyper bruke arkiv- posttype .php."

For annen informasjon om å integrere posttyper, spørre innleggstyper og generelle funksjoner, besøk kodeksen her.


Integrering av posttyper via Functions.php

Integrering av posttyper er ganske enkelt et spørsmål om å inkludere register_post_type funksjon. Når du har tatt med dette i din functions.php-fil, bør nav-menyen din gå fra noe slikt:

til dette:

For å opprette egendefinerte innleggstyper, åpne malen din functions.php filen i en editor, og plasser følgende funksjon i filen:

 funksjon create_post_type () register_post_type ('mysite_reviews', array ('labels' => array ('navn' => __ ('Anmeldelser'), 'singular_name' => __ ('Review')), 'public' => true, 'menu_position' => 5, 'rewrite' => array ('slug' => 'vurderinger'))));  add_action ('init', 'create_post_type');

Nedbrutt, legger dette til funksjonen create_post_type, og registrerer innleggstypen mysite_reviews,

 add_action ('init', 'create_post_type'); funksjon create_post_type () register_post_type ('mysite_reviews',

Du lurer kanskje på hvorfor jeg har oppkalt post_type mysite_reviews, og ikke bare anmeldelser. Jeg gjorde navnet mer iøynefallende for å sikre at min innleggstype ikke ville forstyrre egendefinerte innleggstypenavn fra andre plugins eller temaer.

En annen vennlig påminnelse, dine egendefinerte innleggstyper må ikke overstige 20 tegn, da det er grensen for databasekolonnen.

Her er et sammendrag av de viktige innleggstypeparametrene jeg har angitt ovenfor:

  • etiketter - Wordpress tillater oss å merke alt fra posttypens navn til etiketten for å legge til nye innlegg. En komplett liste finner du her. I den ovennevnte funksjonen merket jeg navnet på posttypen og dets entallnavn.
  • offentlig - Hvis satt til true
  • menu_position - Jeg setter dette til 5, som vil plassere posttypen direkte under "Innlegg". De andre plasseringer er som følger: null (under kommentarer), 0 (under Media), 20 (under sider), 60 (under første separator) og 100 (under andre separator)
  • omskrive - Slik at vår faktiske term "mysite_reviews" ikke blir satt inn i nettadressen, setter vi sluggen til "vurderinger" som vil bli mye bedre i det lange løp for våre besøkende, linker og SEO..

For mer informasjon

En fullstendig liste over parameterargumenter for posttyper finner du her.


Viser posttyper i Wordpress-temaer

Siden Wordpress-posttyper er bare en forlengelse av det eksisterende klassifikasjonssystemet, viser dem i et tema ganske likt det som allerede er på plass. Det er for øyeblikket tre primære måter å vise egendefinerte innleggstyper i temaene dine:

  • Post forespørsel
  • Enkelt innleggsmal
  • Arkivmal

Vise via postspørsmål

For å vise den nye posttypen mysite_reviews, du vil åpne opp malfilen du vil vise den på (i mitt tilfelle lager jeg vanligvis en egendefinert home.php for maler), og skriv inn følgende kode:

 $ args = array ('post_type' => 'mysite_reviews', 'posts_per_page' => 10); $ loop = ny WP_Query ($ args); mens ($ loop-> have_posts ()): $ loop-> the_post (); tittelen(); ekko '
'; the_excerpt (); ekko '
'; EndWhile;

Dette oppretter bare en ny Wordpress loop som viser tittelen og utsnittet fra de 10 siste oppføringene i mysite_reviews posttype.

Vise via enkelt innleggsmal

Akkurat som du kan tilpasse måten individuelle innlegg vises via et temas single.php-fil, kan du tilpasse måten dine individuelle posttypeoppføringer vises på. Den enkleste måten å gjøre dette på er å opprette en duplikat av temaet ditt single.php-fil og gi nytt navn til det enkelt- posttypename php. Derfra kan du tilpasse den filen til dine spesifikasjoner. Ved hjelp av eksemplet ovenfor, trenger vi en enkelt postmal som heter single-mysite_reviews.php.

Vise etter arkivmal

Mens denne funksjonen ikke vil være tilgjengelig før WP 3.1 utgives, kan posttyper også vises arkivstil ved å opprette en fil i temaet ditt kalt arkiv- posttypenavn .php. Så, hvis vi lager et arkiv for posttypen, ville vi opprette en arkivmal som heter arkiv-mysite_reviews.php og legg den inn i vår malmappe.

Med tilpasset posttype-templering kan tilpassede temaopprettere lettere opprette abonnement og medlemskaps nettsteder ved å begrense innholdet på disse bestemte innleggene og sidene til bestemte brukergrupper.


Et raskt oversikt over WP-taksonomier

Jeg vil ikke gå for mye i detalj her, da Paul Kaiser allerede har skrevet en flott oversikt over taksonomier og koden som er involvert for å implementere funksjonen (se opplæringen her). Nøkkelordet å huske når man tenker på taksonomier er klassifisering. De ligner på koder, men tillater dypere, mer innholdsspesifikke klassifiseringer.

I sannhet er de en ekstremt kraftig måte å gruppere ulike elementer på alle måter.

For eksempel, si at jeg har bruk av anmeldelser posttype fra ovenfor. Fordi jeg definitivt vil klassifisere den brede posttypen, kan jeg lage taksonomier som:

  • Filmanmeldelser
  • Bokanmeldelser
  • Produktanmeldelser

Med egendefinerte taksonomier kan jeg til og med gå dypere inn i klassifisering av de ovennevnte taksonomiene. Jeg kunne gå inn i filmgenrer, bokforfattere og produktmarkeder. Igjen, sammen med posttyper, øker dette kraftig Wordpress 'innholdshåndtering.


Integrerte taksonomier via Functions.php

Samlet sett er taksonomier ganske enkle å implementere i din functions.php fil. Husk at du kan gå hierarkisk med dem eller behandle dem som koder, så jo mer komplisert du vil ha, desto større er vanskeligheten. Uansett, her er en rask gjennomgang av hvordan å innlemme disse inn i temaet ditt.

Igjen, åpne opp din functions.php-fil og sett inn følgende kode:

 funksjon movie_taxonomy () register_taxonomy ('movie_review', 'mysite_reviews', array ('hierarchical' => true, 'label' => 'Filmanmeldelse', 'query_var' => true, 'rewrite' => array '=>' film-anmeldelser ')));  add_action ('init', 'movie_taxonomy');

For å bryte ned dette, gir vi taksonomien et formelt navn ("movie_review"), og vi legger det under posttypen "mysite_reviews", som vi opprettet tidligere.

 funksjon movie_taxonomy () register_taxonomy ('movie_review', 'mysite_reviews',

Så passerer vi disse verdiene:

 array ('hierarchical' => true, 'label' => 'Filmanmeldelse', 'query_var' => true, 'rewrite' => array ('slug' => 'filmanmeldelser'))

Dette gir følgende argumenter:

  • hierarkisk - Når det er satt til "true", vil taksonomien fungere mer som en kategori. Det kan være overordnede taksonomier og nestede taksonomier som gir større dybde av klassifisering. Når de er satt til "false", fungerer de som ligner på tagger.
  • merkelapp - Som med posttyper ovenfor, er dette etiketten som taksonomien vil motta offentligheten.
  • query_var - Når den er satt til "sann", blir denne taksonomien et spørringselement.
  • omskrive - Dette setter URL-omskrivningen. Nå innlegg i denne taksonomien vil bli vist som http://mysite.com/movie-reviews/post title /.

Sluttresultatet i vår admin nav skal se slik ut:

Videre kan vi dykke inn i det grensesnittet og legge til flere klassifiseringskategorier og struktur. Det grensesnittet ligner på kategorien grensesnitt som du kanskje allerede er kjent med.

Fra dette grensesnittet kan du redigere sløyfene i de ulike kategoriene innenfor din taksonomi, opprette nye kategorier og bestemme foreldre og barnekategorier.

For mer informasjon

En fullstendig liste over parameterargumenter for taksonomier finner du her.


Viser taksonomier i Wordpress-temaer

Det er for øyeblikket tre primære måter å vise egendefinerte innleggstyper i temaene dine:

  • Taksonomi Cloud
  • Egendefinert Taxonomy Query
  • Egendefinert Taxonomy List

Taksonomi Cloud

Akkurat som det er taggskyger, er det taksonomi-skyer. For å gjøre det enkelt, bruker både tagger og skyer wp_tag_cloud funksjon. For å vise en rekke taksonomiske kategorier i en sky, vil vi bruke følgende kode:

  'taxonomy_name_1', 'taxonomy_name_2')); ?>

For mer informasjon om funksjonen og dens parameterargumenter, besøk kodeksen.

Egendefinert Taxonomy Query

Taxonomier kan også inkluderes i tilpassede spørringer, akkurat som vi gjorde med posttyper ovenfor. For eksempel, for å vise innhold fra taksonomien MOVIE_GENREfilmer, vi må legge inn følgende kode i vår malfil:

 $ args = array ('tax_query' => array ('taxonomy' => 'movie_genre', 'field' => 'slug', 'terms' => 'komedie')); query_posts ($ args);

Først bruker vi argumentet tax_query slik at vi kan passere parametere som gjør at vi kan søke etter slug eller vilkår og returnere mer nøyaktige spørringsresultater. I dette eksemplet viste vi innlegg merket som "komedie" i den egendefinerte taksonomien "movie_genre". Igjen, som vi gjorde med posttyper, kan vi begrense antall innlegg som denne søket returnerer.

Egendefinerte Taxonomy Lists

For å vise en kommandoramert liste over innlegg etter taksonomi, trenger vi ganske enkelt å sette følgende et sted i løkken:

 ID, 'taxonomy name', 'Displayed Title:', ',', ');?>

Det finnes andre visningsalternativer for denne listen, og parametrene finner du her.


Bruke posttyper og taksonomier i ditt neste prosjekt

Nå som vi har muttere og bolter, tror jeg "Hvorfor bryr jeg meg om disse tingene?" er et virkelig rettferdig spørsmål. Mulighetene med posttyper og taksonomier, spesielt med å jobbe med kunder som ofte er for opptatt av å håndtere et nettsted, er uendelige. Dette, etter min mening, sparer tid for å skape nye adminfunksjoner og oppdatering av plugins, og åpner dører for nye muligheter med mye mindre arbeid (og koding) involvert.

Nedenfor er noen ideer som jeg hadde om hvordan å integrere disse i egentlig arbeid:

1. Review Sites

For det første kan en gjennomgangsside dra nytte av de tilpassede templeringsalternativene som er oppført ovenfor (enkelt og arkiv)

Her er noen flere posttyper og taksonomier som du kan implementere på en gjennomgangsside:

  • Post Type - Filmanmeldelser
  • taksonomier - Sjanger, Skuespiller, Regissør
  • Post Type - Bokanmeldelser
  • taksonomier - Sjanger, Forfatter, Utgiver
  • Post Type - Produktanmeldelser
  • taksonomier - Produktkategori, Pris

2. Real Estate Listing Sites

Mens det er noen gode maler for eiendomsmegling steder, kan posttyper og taksonomier la kreative mennesker lage tilpassede maler som lett kan vedlikeholdes av kunder og webmastere. Her er bare noen ideer å bruke i ditt neste prosjekt:

  • Post Type - oppføringer
  • taksonomier - Område, Agent, Pris, Rom
  • Post Type - agenter

3. Event Listings

En ting som Wordpress virkelig mangler (etter min mening) er et godt hendelsesstyringssystem. Posttyper og taksonomier kan lett ta vare på det ved å tilby et system for å klassifisere månedlige hendelser etter sted, dag eller annet system du kan tenke på.

4. Abonnementssider

Med opprettelsen av en ny posttype og -maler kan du opprette en tilpasset premiumkategori for bloggen din eller nettstedet ditt, og integrere en betalingsgateway for å lage ditt eget medlemskapsside.

5. E-handel

Ved å lage en produktposttype og mal, kan du enkelt legge til og vise produkter til salgs på nettstedet ditt. I tillegg vil taksonomier tillate enkel produktorganisasjon.


Hvor går vi fra her?

Jeg håper denne opplæringen har forklart innleggstyper og taksonomier i Wordpress 3.0, og hvorfor de er en ekstremt verdifull ressurs å implementere i dine prosjekter. Jeg vet at det er mange advokater for plugins (og jeg er selv en plugin author), men jeg håper at jeg har gjort saken at implementering av disse tingene er en veldig enkel oppgave, og en som vil spare tid for både deg og din klient i på lang sikt.

Listen over ideer over er en liten i beste fall, så jeg vil gjerne høre hvordan du har implementert dem i prosjektene dine eller kanskje noen andre bruksområder som jeg ikke skrev opp.

Takk så mye for å lese!