Opprett en WordPress tilpasset innleggstype

Forfatter: Monica Porter
Opprettelsesdato: 14 Mars 2021
Oppdater Dato: 15 Kan 2024
Anonim
Octolooks Scrapes Wordpress Scraper plugin
Video: Octolooks Scrapes Wordpress Scraper plugin

Innhold

  • Kunnskap som trengs: PHP, erfaring med WordPress
  • Krever: WordPress v3.1 +
  • Prosjekt Tid: 20 minutter
  • Støttefil

Egendefinerte innleggstyper ble introdusert i WordPress v3.0 slik at utviklere enkelt kan legge til forskjellige typer innhold i plugin-modulene og temaene, slik at du enkelt kan utvide WordPress og gjøre det mer som et CMS.

I denne opplæringen vil vi se nøyaktig hva en WordPress-tilpasset innleggstype er, og hvordan du bruker dem i plugin-modulene og temaene dine med en gang.

01. Hva er WordPress-tilpassede innleggstyper?

I sin enkleste form er en WordPress tilpasset innleggstype en representasjon av en type innhold. Ikke bli forvirret av det faktum at den har "innlegg" i tittelen. Det kan bokstavelig talt representere alt du vil. Så for eksempel har WordPress flere innebygde innleggstyper:

  • Innlegg
  • Sider
  • Vedlegg
  • Revisjoner
  • Nav-menyer

Prøv å tenke på WordPress tilpasset innleggstype som en måte å manipulere innhold på samme måte som du ville gjort med et blogginnlegg, men med langt mer kontroll over hvordan det vises. Som en advarsel, hvis du bare ønsker å kategorisere innholdet ditt på forskjellige måter, bør du vurdere å bruke kategorier, koder eller tilpassede taksonomier før du hopper til å lage tilpassede innleggstyper.


02. Hvordan oppretter jeg en tilpasset WordPress-innleggstype?

Å lage en WordPress tilpasset innleggstype er faktisk utrolig enkelt, og når du ser hvor mye arbeid WordPress gjør for deg, begynner du å forstå hvor kraftige de kan være. I temaets funksjoner.php-fil setter du inn følgende kode:

add_action ('init', 'create_post_type');
funksjon create_post_type () {
register_post_type (’book’,
array (
’Labels’ => array (
’Name’ => __ (‘Books’),
’Singular_name’ => __ (‘Bok’)
),
’Public’ => sant,
’Has_archive’ => true
)
);
}

Det er bokstavelig talt alt du trenger for å lage en tilpasset WordPress-innleggstype. I eksemplet ovenfor lager vi en tilpasset innleggstype kalt “bok”, som vi vil bruke til å lage en bokdatabase. Vi gir det noen etiketter, angir noen alternativer, og vi er klare til å gå.

Eksemplet ovenfor er ekstremt enkelt, men viser enkelheten i å lage tilpassede innleggstyper. Nå hvis du går til WordPress-adminpanelet ditt, bør du se et nytt menyelement som heter "Bøker". Spill videre med den nye delen "Bøker". Fordi vi setter “public => true”, genereres hele admin-grensesnittet for oss av WordPress, noe som gjør livene våre mye enklere.


03. Opprette en bokdatabase

I vårt siste eksempel opprettet vi en veldig grunnleggende WordPress tilpasset innleggstype, men vi skrapte bare overflaten av hva som er mulig med tilpassede innleggstyper. La oss skitne hendene og lage en fullverdig tilpasset innleggstype.

// Lag ut innleggstype
add_action ('init', 'create_post_type');
funksjon create_post_type () {
$ args = array (
’Labels’ => post_type_labels (‘Book’),
’Public’ => sant,
’Publicly_queryable’ => sant,
’Show_ui’ => sant,
’Show_in_menu’ => sant,
’Query_var’ => sant,
’Rewrite’ => sant,
’Capability_type’ => ’innlegg’,
’Has_archive’ => sant,
’Hierarkisk’ => falsk,
’Menu_position’ => null,
’Supports’ => array (’title’,
'redaktør',
'forfatter',
'Thumbnail',
'utdrag',
’Kommentarer’
)
);

register_post_type (’book’, $ args);
}

// En hjelperfunksjon for å generere etikettene
funksjon post_type_labels ($ entall, $ flertall = ’’)
{
if ($ flertall == ’’) $ flertall = $ entall .’s ’;

retur matrise (
’Name’ => _x ($ flertall, ‘post type general name’),
’Singular_name’ => _x ($ singular, ‘post type singular name’),
’Add_new’ => __ (‘Add New’),
’Add_new_item’ => __ (‘Legg til ny’. $ Entall),
’Edit_item’ => __ (’Edit’. $ Entall),
’New_item’ => __ (’Ny’. $ Entall),
’View_item’ => __ (‘View’. $ Entall),
’Search_items’ => __ (‘Søk’. $ Flertall),
’Not_found’ => __ (’Nei’. $ Flertall. ’Funnet’),
’Not_found_in_trash’ => __ (‘Nei’. $ Flertall. ’Funnet i papirkurven’),
’Parent_item_colon’ => ’’
);
}

// legg til filter for å sikre at teksten Bok eller bok vises når brukeren oppdaterer en bok
add_filter (’post_updated_messages’, ‘post_type_updated_messages’);
funksjon post_type_updated_messages ($ meldinger) {
global $ post, $ post_ID;

$ messages [’book’] = matrise (
0 => ’’, // Ubrukt. Meldinger starter ved indeks 1.
1 => sprintf (__ (’Bok oppdatert. A href ="% s "> Se bok / a>’), esc_url (get_permalink ($ post_ID))),
2 => __ (’Egendefinert felt oppdatert.’),
3 => __ (’Egendefinert felt slettet.’),
4 => __ (‘Bok oppdatert.’),
/ * oversettere:% s: dato og klokkeslett for revisjonen * /
5 => isset ($ _ GET [’revision’])? sprintf (__ (‘Bok gjenopprettet til revisjon fra% s’), wp_post_revision_title ((int) $ _GET [’revisjon’], false)): false,
6 => sprintf (__ (’Bok utgitt. A href ="% s "> Se bok / a>’), esc_url (get_permalink ($ post_ID))),
7 => __ (‘Bok lagret.’),
8 => sprintf (__ ('Book sent. A target = "_ blank" href = "% s"> Preview book / a>'), esc_url (add_query_arg ('preview', 'true', get_permalink ($ post_ID)) )),
9 => sprintf (__ (’Bok planlagt for: sterk>% 1 $ s / sterk>. A target =" _ blank "href ="% 2 $ s "> Forhåndsvisning av bok / a>’),
// oversettere: Publiser boksdatoformat, se php.net/date
date_i18n (__ (’M j, Y @ G: i’), strtotime ($ post-> post_date)), esc_url (get_permalink ($ post_ID))),
10 => sprintf (__ ('Book draft updated. A target = "_ blank" href = "% s"> Preview book / a>'), esc_url (add_query_arg ('preview', 'true', get_permalink ($ post_ID) ))),
);

returnere $ meldinger;
}


Så hva skjer her? Vel, først lager vi den tilpassede innleggstypen vår og innstiller de fleste tilgjengelige alternativ med den. Jeg kommer ikke til å forklare hva alle disse alternativene gjør her, fordi WordPress Codex forklarer dem veldig bra.

Den andre funksjonen du ser er ganske enkelt en hjelperfunksjon som gjør det enkelt å generere etikettene som skal brukes i WordPress-administratoren for den tilpassede innleggstypen. Du kan stille inn $ labels-arrayet manuelt hvis du ønsker det, men jeg synes dette er renere og enklere.

Til slutt legger vi til et filter for å endre de oppdaterte meldingene. Så nå når WordPress viser en oppdateringsmelding for denne egendefinerte innleggstypen, vil den vise riktige etiketter (i stedet for bare å bruke "post" hele tiden).

04. Ser på bøkene våre

Så nå har vi denne fantastiske tilpassede innleggstypen som vi kan administrere i WordPress-administratoren. Men hva med å faktisk vise bøker på nettstedet ditt? Vel, WordPress har du dekket.

Det er flere maler som kan brukes i temaene dine for automatisk å vise vårt tilpassede innhold av innleggstype:

  • enkelt- {posttype} .php - På samme måte som innlegg vises på sin egen side med single.php, vil egendefinerte innleggstyper bruke single- {posttype} .php hvis det er tilgjengelig. Så i eksempelet vårt ovenfor kan vi lage en enkeltbok.php filen og produktinnleggene vises ved hjelp av den malen.
  • arkiv- {posttype} .php - Fra og med WordPress v3.1 kan du også bruke en mal for arkiv-typen. På samme måte som innlegg vises i eget arkiv med archive.php, bruker egendefinerte innleggstyper arkiv- {posttype} .php hvis det er tilgjengelig.

Nå er det bra å ha disse malfilene, men noen ganger trenger du å bli litt mer komplisert og bruke et tilpasset spørsmål for litt finkornet kontroll. Heldigvis har WP_Query dekket oss ved å tillate oss å spesifisere en "post_type" -parameter.

$ args = array (’post_type’ => ’book’, ’posts_per_page’ => 10);
$ loop = ny WP_Query ($ args);
mens ($ loop-> have_posts ()): $ loop-> the_post ();
tittelen();
ekko ’div>’;
innholdet();
ekko ’/ div>’;
slutter;

05. Konklusjon

Du har nå en fullt fungerende bokdatabase, som du kan kontrollere via WordPress-adminområdet ditt, slik at du kan vise bøker på WordPress-nettstedet ditt. Denne opplæringen fungerer bare som en introduksjon til hva som kan oppnås med tilpassede innleggstyper. De er en utrolig kraftig funksjon av WordPress, så bruk dem forsiktig, men vær ikke redd for å strekke fantasien din: det er så mange ting du enkelt kan oppnå ved å bruke tilpassede innleggstyper.

06. Ytterligere merknader

Før vi er ferdige er det noen ekstra poeng som er verdt å nevne:

  • Når du oppretter egendefinerte innleggstyper, regnes det som beste fremgangsmåten å forpeke innleggstypen med et unikt “navneområde” for å unngå konflikter med andre temaer og plugin-moduler. Selv om du er forsiktig med at den totale lengden på det egendefinerte innleggstypenavnet ikke er større enn 20 tegn, ellers vil rare ting skje.
  • Ikke bruk "wp_" som prefiks for navneområdet, da det er reservert for interne WordPress-navn.
  • Hvis du får 404 sider når du først prøver å se dine egendefinerte innleggstyper, ikke få panikk. Bare gå til Innstillinger> Permalinks-siden, og dette vil spyle omskrivingsreglene dine. Hvis du er plugin-forfatter, må du sørge for at du skyller om skrivingsreglene for plugin-aktivering.

Likte dette? Les disse!

  • Strålende Wordpress opplæringsvalg
  • Lag et perfekt humørbrett med disse pro-tipsene
  • Den ultimate guiden til logo design
  • Våre favorittfonter - og de koster ikke en krone
Ferske Artikler
De 20 beste UX-designerne som følger på Twitter
Lese

De 20 beste UX-designerne som følger på Twitter

I brukeropplevel e verdenen mangler det ikke på ny de ignin pira jon og nye teknikker for å få dine kreative juice til å flyte. Men hvor finner du det?Twitter er et godt ted å...
Lag 3D branneffekter
Lese

Lag 3D branneffekter

Brann, flom og ødeleggel e er noen av de vanlig te oppgavene om blir gitt til VFX-arti ter, og i denne 3D-kun topplæringen kal jeg vi e deg hvordan du ra kt kan lage en ildfluke om er klar f...
Hvordan starte vlogging
Lese

Hvordan starte vlogging

å, du vil vite hvordan du tarter vlogging? Vi er ikke overra ket. Vlogging har vok t til å bli et utrolig populært alternativ til tradi jonelle, krevne blogger. om et videoba ert mediu...