Moitteeton postaustyyppi. Luokkien lisääminen mukautettuihin viestityyppeihin WordPressissä. Mukautettujen viestityyppien luominen

Tietoja mukautetuista viestityypeistä WordPressissä (CPT, mukautetut viestityypit WordPressissä), luomisesta ja määrittämisestä, luokkien ja tunnisteiden lisäämisestä, sisäkkäisten URL-osoitteiden luomisesta /post type/category/post tai http://example.com/post_type/ kategoria/ viesti/ .
Siinä kuvataan myös, kuinka WordPressin vakiotoimintoja voidaan laajentaa luomalla uudentyyppisiä postauksia, joita voidaan käyttää eri tarkoituksiin: oman portfolion lisääminen, elokuva- ja musiikkihakemisto, tuoteluettelo, tapahtumakalenteri, jopa oman pienen verkkosi tekeminen. kauppa (koska iso on parempi käyttää valmiita ratkaisuja, kuten WooCommerce) tai sosiaalinen verkosto ja paljon muuta tässä hengessä.
Ensin yleistietoa, sitten yksityiskohtia.

Tietoja WordPressin viesteistä: missä ne on tallennettu tietokantaan ja miten ne saadaan

Ehdottomasti kaikki WordPressin viestit, joista keskustellaan alla, on tallennettu yhteen taulukkoon: wp_posts. Viestien metatiedot, kuten tiedot metalaatikoista, tallennetaan wp_postmeta-taulukkoon.

Annan esimerkin siitä, kuinka saada 10 tyyppistä postausta (vakio Viestit hallintapaneelissa).
Yleisesti ottaen tietoja ei tarvitse erikseen pyytää. Malleissa ne on jo valmiiksi asennettuna, esimerkiksi single.php:ssä tietuetiedot ovat jo käsiteltävissä silmukassa

If (have_posts()) ( while (have_posts()) ( the_post(); // Tässä käytetään silmukan tietoja, kuten the_title() jne. ) )

Jos tietoja on hankittava jostain silmukan tai mallin ulkopuolelta, käytetään WP_Query-kyselyä

$args = array("post_type" => "post", // Viestin tyyppi: sivu, liite, ... "posts_per_page" => 10, // 10 viestiä kerrallaan); $p = get_posts($args); // Tietoja voidaan laajentaa silmukassa if (!empty($p)) ( foreach ($p $post) ( setup_postdata($post); ?> ">

Tiedot saadaan SQL-kyselyllä:

Global$wpdb; $query = "VALITSE * FROM ($wpdb -> viestit) WHERE post_type = "viesti" RAJA 10"; $p = $wpdb -> get_results($query); exit(print_r($p)); // $p sisältää nyt taulukon, jossa on viestitietoja

Kaikki kolme yllä olevaa menetelmää antavat saman tulostuloksen.

Esiasetetut viestityypit WordPressissä: viesti, sivu, liite, versio, nav_menu_item

Merkinnät tai viestit (viesti)

Kaikkein käytetyin WordPressissä oleva yksikkö on Posts (alias posts). Käytetään blogiteksteinä ja vastaavina. Siinä on 2 esiasetettua taksonomiaa: otsikot, jotka tunnetaan myös kategorioina (luokka) ja tunnisteet, jotka tunnetaan myös tunnisteina (post_tag).
Taksonomiaa käytetään viestien lajitteluun ja järjestämiseen.
Luokat eroavat tunnisteista siinä, että niillä on puurakenne (ne voidaan upottaa sisäkkäin).
Levyt ovat toisistaan ​​riippumattomia yksiköitä ja siten ne ovat jossain määrin samanlaisia ​​kuin Records.
Lisäksi oletusarvoisesti WordPress-sivuston RSS-syöte luodaan merkinnöistä.

Tietueissa käytetään seuraavia mallitiedostoja (prioriteettijärjestyksessä):

  1. single-post.php
  2. single.php
  3. yksittäinen.php
  4. index.php

Mallitiedostoja haetaan ylhäältä alas tärkeysjärjestyksessä. Jos teemasta löytyy mallitiedosto, sitä käytetään ja haku keskeytetään.

Sivut

Sivuja käytetään pääasiassa palvelusivuina, aloitussivuina, aloitussivuina, tietosanakokoelmina ja vastaavina. Niillä on puumainen hierarkia, eli ne voidaan upottaa toistensa sisään, mikä heijastuu viimeisen sivun osoitteeseen (URL-ketjussa on ylätason pikakuvakkeet), ja tässä roolissa on mahdollista anna heille etusija lajittelussa.
Voit luoda aloitussivun kahdella tavalla:

Luo erityinen sivumalli

Luo jonnekin teeman sisään juureen tai sen alihakemistoon tiedosto mielivaltaisella nimellä ja php-tunnisteella, esimerkiksi landing.php. Sisälle voit sijoittaa täysin minkä tahansa mallin, joka voi olla täysin erilainen kuin muut sivuston sivut. Mutta tärkeintä on sijoittaa tämä koodi tiedoston alkuun:

Mallin nimi on erityinen tarra, joka kertoo WordPressille, että tämä tiedosto on erityinen malli.
Nyt kun luot ja muokkaat mitä tahansa sivua, katso oikealla olevaa lohkoa nimeltä Sivun attribuutit, sen Malli-osiossa voit valita ainutlaatuisen aloitussivumme.

Sivuille käytetään seuraavaa mallihierarkiaa. Kuten tietueiden kohdalla, ilmoitan tärkeysjärjestyksessä:

  1. (malli).php
  2. sivu-(sivun_tunniste).php
  3. sivu-(sivu_ID)
  4. page.php
  5. yksittäinen.php
  6. index.php

Liitteet, liitteet tai liitteet

Apuohjelmatyyppi, joka on suunniteltu tallentamaan tietoja tiedostoista (kuvat, ääni, video ja vastaavat), jotka on ladattu lataajan kautta tavalliseen WordPress-editoriin, kun julkaisua, sivua tai vastaavaa muokataan: koko, paino, kuvaus, mikä viesti tai sivu he ovat kiintyneitä ja sellaisia ​​asioita.

Voit hankkia liitteitä myöhempää käsittelyä varten käyttämällä seuraavaa koodia:

$args = array("post_type" => "attachment", // Viestityyppi: liite "post_status" => "peri", // Oletus on "julkaise", ja sen avulla et voi vastaanottaa liitteitä, joten ilmoitamme liitteen erityistila "peri"); $p = get_posts($args); exit(print_r($p)); // Lähdössä meillä on taulukko liitteineen

Liitteiden mallien hierarkia:

  1. (mime-tyyppinen).php
  2. (mime-alatyyppi).php
  3. (mime-tyyppi-alatyyppi).php
  4. liite.php
  5. single.php
  6. yksittäinen.php
  7. index.php

Tarkistukset, luonnokset tai tarkistukset

Versiot, tunnetaan myös nimellä Revisions, ovat versioita luonnoksista, jotka luodaan automaattisesti, kun kirjoitat artikkelia WordPressin hallintapaneelissa tai tallennat artikkelin julkaisematta sitä.
Kirjoitusprosessin aikana jokaisen artikkelin kohdalla oletusarvoisesti jokainen luonnoksen versio tallennetaan. Voit verrata kahta eri versiota ja palata tarvitsemaasi versioon.
Useiden versioiden tallentaminen samasta artikkelista on melko kallista ja usein turhaa (vaikka luultavasti olisi oikeampaa jättää kaikki oletusarvoisesti, puhdistamalla säännöllisesti vanhat versiot laajennuksen avulla, esim. WP Optimize), joten versioiden tallennettujen versioiden määrä voidaan muuttaa kahdella vaihtoehdolla:

  1. Käytä wp_revisions_to_keep-suodatinta
  2. Rekisteröidy osoitteessa wp-config.php //Poista versiot käytöstä pienimpään mahdolliseen arvoon define("WP_POST_REVISIONS", 0);

    Mahdolliset arvot:

    • tosi tai -1: Tallentaa luonnoksen jokaisen version. Oletusasetus
    • false tai 0: poistaa luonnosten tallennuksen käytöstä, paitsi 1 automaattinen tallennus
    • Kokonaisluku suurempi kuin nolla: määritetty määrä luonnosversioita tallennetaan + 1 automaattinen tallennus. Vanhat versiot, jotka eivät mahdu määritettyyn numeroon, poistetaan automaattisesti

Navigointivalikon kohteet (nav_menu_item)

Navigointivalikko (nav_menu_item) on viestityyppi, joka tallentaa tietoja WordPressin navigointikohteesta. Ensimmäinen ja toistaiseksi ainoa tietuetyyppi, jota ei käytetä muiden tietueiden tapaan, sivuston toimintaa ja näyttämistä varten oleva data saa omat erilliset funktionsa.
Navigointivalikot eivät myöskään ole oletusarvoisesti käytössä. Voit ottaa ne käyttöön ilmoittamalla heidän tukensa:

  1. Kirjoita add_theme_support("menus");
  2. Tai rekisteröi valikkotila komennolla register_nav_menu() , jolloin valikkojen tuki otetaan automaattisesti käyttöön

Käytä wp_nav_menu() saadaksesi tiedot, koska WP_Query ei toimi ja se on nav_menu_item viestityypin ominaisuus.

// Tämä koodi toimii wp_nav_menu(); // Näyttää ensimmäisen rekisteröidyn ei-tyhjän valikon // Alla oleva koodi ei kuitenkaan toimi $args = array("post_type" => "nav_menu_item", // Viestityyppi: sivu, liite, ...); $p = get_posts($args); exit(print_r($p)); // Tuloste on tyhjä taulukko

Mukautettu viestityyppi (CPT WordPress)

Nyt tulemme pääasiaan - työkaluun, jonka avulla voit laajentaa WordPressin standardibloggaustoimintoja loputtomiin mahdollisuuksiin: mukautettuun mukautettuun viestityyppiin.
Yksinkertaisin esimerkki siitä, kuinka voit rekisteröidä uuden postaustyyppimme sheensay_product

Add_action("aloitus", "sheensay_post_type"); function sheensay_post_type() ( register_post_type("sheensay_product", array("labels" => array("name" => "Tuotteet", "singular_name" => "Tuotteet",),), "public" => true, // tyyppi tietueet ovat avoinna haulle ja vastaaville "has_archive" => true, // Ota käyttöön arkistosivut "supports" => array("otsikko", "editori", "pikkukuva", "kommentit"), // Ota käyttöön tuki otsikko, editori , pikkukuvat, kommentit));

Tässä sheensay_product on uuden viestityypin nimi. Sen ei pitäisi olla ristiriidassa muiden järjestelmän jäsenten kanssa.
Tässä suoritusmuodossa se toimii myös pikakuvakkeena tämäntyyppiseen viestiin, eli se on läsnä URL-osoitteessa. Jos haluat määrittää esimerkiksi toisen pikakuvakkeen Tuotteet, tee kuten alla olevassa esimerkissä

Add_action("aloitus", "sheensay_post_type"); function sheensay_post_type() ( register_post_type("sheensay_product", array("labels" => array("name" => "Tuotteet", "singular_name" => "Tuotteet",),), "public" => true, "rewrite" => array("slug" => "products"), // Tunniste Custom Post Type "has_archive" => true, "supports" => array("otsikko", "editori", "pikkukuva"),) ; )

Kuinka valita oikea nimi uudelle viestityypille

Seuraavat nimet on varattu WordPressissä, eikä niitä voi käyttää uuden viestityypin nimenä:

  • liite
  • tarkistus
  • nav_menu_item
  • toiminta
  • teema
  • Tilaus

Vältä myös wp_-etuliitettä nimen alussa, koska se voi aiheuttaa ristiriitoja WordPress-ytimen tulevien versioiden kanssa.
On parasta, jos lisäät nimien etuliitteitä mielivaltaisilla etuliitteillä, jotka liittyvät sivustosi, tuotteesi tai brändisi nimeen, esimerkiksi sheensay_product, niin vältyt taatusti mahdollisilta ristiriitaisilta

Kuinka tehdä mukautettu taksonomia

Mukautetut viestityypit voivat käyttää viesteistä peräisin olevia taksonomioita, esimerkiksi luokkia (kategorioita) tai tunnisteita (tunnisteita), mutta sinulla voi olla omia taksonomioita.

Add_action("aloitus", "sheensay_post_type"); function sheensay_post_type() ( // Rekisteröi taksonomia register_taxonomy("sheensay_product_type", "sheensay_product", array("label" => "Types", "hierarchical" => true, // Jos TOSI, taksonomia on analoginen otsikoiden kanssa (kategoriat) Jos EPÄTOSI (oletus), taksonomiasta tulee analogi tunnisteille "rewrite" => array("slug" => "product-type"),)); Custom Post Type) register_post_type ("sheensay_product", array("labels" => array("name" => "Tuotteet", "yksittäinen_nimi" => "Tuotteet",), "public" => true, "rewrite" = > array("slug " => "products"), // CPT-tunniste määritellään tässä "has_archive" => true, "supports" => array("otsikko", "editori", "pikkukuva"), // Ota käyttöön otsikon, editorin, pikkukuvan tuki ) )

Mallit mukautetuille viestityypeille

Kaikki riippuu siitä, millaista tietoa näytetään. Vaihtoehtoja voi olla kolme: tietty viestimalli, viestiarkistomalli ja taksonomiamalli

Viestisivun malli

Listattu tärkeysjärjestyksessä

  1. single-(post_type).php
  2. single.php
  3. index.php

Viestiarkistomalli

  1. arkisto-(post_type).php
  2. arkisto.php
  3. index.php

Mukautettu taksonomiamalli

  1. taksonomia-(taksonomian_nimi)-(termi_nimi).php
  2. taksonomia-(taksonomian_nimi).php
  3. taksonomia.php
  4. arkisto.php
  5. index.php

Tässä taksonomian_nimi on sheensay_product_type ja termi_nimi on taksonomian tunniste, jonka luot hallintapaneelissa.

Kuinka saada mukautettuja viestityyppitietoja (Custom Post Type WordPress) ja näyttää ne sivustolla

Voit saada mukautettuja viestityyppitietoja WordPressissä näytettäväksi verkkosivustollasi samoilla menetelmillä kuin tavalliset viestit ja sivut

$args = array("post_type" => "sheensay_product", // Määritä uusi viestityyppimme "posts_per_page" => 10,); $p = get_posts($args); foreach ($p $posta) ( setup_postdata($post); ?> ">

Jos puhumme pääpyynnöstä, jonka tiedot esimerkiksi esiladataan näytettäväksi pääsivulla tai tavallisilla arkistosivuilla, mielivaltaiset viestityypit poistetaan siellä käytöstä.
Joten jos haluat minkä tahansa luodun viestityypin näkyvän esimerkiksi arkistosivuilla tavallisten viestien rinnalla, sinun on vaihdettava viestien esilataussuodatin

// Yhdistä "sheensay_product" -standardiin "post" ja "page" add_action("pre_get_posts", "add_sheensay_product_in_main_query"); function add_sheensay_product_in_main_query($query) ( if (is_archive() && $query -> is_main_query()) $query -> set("post_type", array("post", "page", "sheensay_product")); return $query ;)

Valmis luokka mukautettujen viestityyppien luomiseen mukautetulla taksonomialla

Alla on luokka, johon voit rekisteröidä minkä tahansa mukautetun viestityypin, jolla on oma taksonomia, ja URL-osoite näyttää tältä
http://example.com/products/type/product

Jotta URL-osoite voidaan luoda, sinun on siirryttävä pysyvän linkin asetuksiin /wp-admin/options-permalink.php ja määritettävä kaikki yleiset asetukset, jotka eivät ole yksinkertaisia.

Alla on itse luokan koodi. Sinun ei tarvitse tehdä siihen muutoksia, mutta voit muuttaa viestityypin tunnisteen aivan lopussa rivillä new Sheensay_Product("products");
Itse koodi on kirjoitettu - tai -kielellä. Ensimmäinen vaihtoehto on parempi, koska tässä tapauksessa et menetä pääsyä uuden viestityypin sisältöön, kun muutat aktiivista teemaa.

post_type = $viestin_tyyppi; /* * Rekisteröi mukautettu viestityyppi */ add_action("init", array($this, "sheensay_cpt_product")); /* * Suodata URL */ add_filter("post_type_link", array($this, "product_permalink_structure"), 10, 2); /* * Jotta sivutus toimisi */ add_action("generate_rewrite_rules", array($this, "fix_product_category_pagination")); ) function sheensay_cpt_product() ( /* * Rekisteröi mukautettu taksonomia uudelle viestityypille */ register_taxonomy("sheensay_product_type", "sheensay_product", array("label" => "Tyypit", "hierarchical" => true, "query_var" " = > true, "rewrite" => array("slug" => $this -> post_type),)); /* * Rekisteröi uusi viestityyppi */ $labels = array("name" => "Tuotteet" , // Päänimi "singular_name" => "Tuotteet", // Lisää "add_new" => "Lisää uusi", // Linkin nimi uuteen merkintään sivupalkissa "add_new_item" => "Lisää uusia tuotteita" , // Otsikko editorissa uutta merkintää lisättäessä $args = array("labels" => $labels, "public" => true, "publicly_queryable" => true, "show_ui" => true, "query_var"); " => true, "capability_type" = > "post", "hierarchical" => false, "menu_position" => null, "supports" => array("otsikko", "editori", "pikkukuva", "ote" ), "rewrite" => array( "slug" => $this -> post_type . "/%sheensay_product_type%", "with_front" => false,), "has_archive" => $this -> post_type,); register_post_type("sheensay_product", $args); if (current_user_can("manage_options")) // Ole varovainen tämän funktion kanssa. Se nollaa kaikki URL-tunnistussäännöt. On parempi kommentoida sitä kaiken työn jälkeen flush_rewrite_rules(); ) function product_permalink_structure($post_link, $post) ( if (FALSE !== strpos($post_link, "%sheensay_product_type%")) ( $product_type_term = get_the_terms($post -> ID, "sheensay_product_type"); if (!empty ($tuotetyyppi_termi)) $post_link = str_replace("%sheensay_product_type%", $product_type_term -> slug, $post_link return $post_link post_type . "/([^/]+)/page/?((1,))/?$"]); $wp_rewrite -> säännöt = array($this -> post_type . "/?$" => $ wp_rewrite -> index "?post_type=sheensay_product", $this -> post_type wp_rewrite -> preg_index(1), $this -> post_type "/([^/]+)/page/?((1,))/?$" => $wp_rewrite -> index "?sheensay_product_type= ". $wp_rewrite -> preg_index(1) . "&paged=" . $wp_rewrite -> preg_index(2),) + $wp_rewrite -> säännöt; ) ) /* * Suorita luokka * Suluissa voit määrittää viestityypin nimen */ new Sheensay_Product("tuotteet");

Nyt hallintapaneelissa voit rekisteröidä uusia tuotteita ja niiden tyyppejä

Rakenna viestityyppisestä objektista objekti, jolla on kaikki viestityyppiominaisuudet

Viestityypin ominaisuudet käyttävät "capability_type"-argumenttia perustana, jos ominaisuutta ei ole asetettu "capabilities"-argumenttitaulukossa tai jos "capabilities"-argumenttia ei ole annettu.

Capability_type-argumentti voidaan valinnaisesti rekisteröidä taulukkona, jolloin ensimmäinen arvo on yksikkö ja toinen monikko, esim. array("story, "stories") Muussa tapauksessa monikkomuodon arvoon lisätään "s". Rekisteröinnin jälkeen capability_type on aina yksikköarvon merkkijono.

Oletusarvoisesti seitsemän avainta hyväksytään osaksi ominaisuusjoukkoa:

    edit_post, read_post ja delete_post ovat metaominaisuuksia, jotka sitten yleensä kartoitetaan vastaaviksi primitiivisiksi ominaisuuksiksi kontekstista riippuen, joka olisi muokattava/luettava/poistettava viesti ja tarkistettava käyttäjä tai rooli. Näin ollen näitä ominaisuuksia ei yleensä myönnetä suoraan käyttäjille tai rooleille.

  • edit_posts - Määrittää, voidaanko tämän viestityypin objekteja muokata.
  • edit_others_posts - Ohjaa, voidaanko muiden käyttäjien omistamia tämän tyyppisiä objekteja muokata. Jos viestityyppi ei tue kirjoittajaa, tämä käyttäytyy kuten edit_posts.
  • publish_posts - Ohjaa tämän viestityypin julkaisuobjekteja.
  • read_private_posts - Ohjaa, voidaanko yksityisiä objekteja lukea.

Nämä neljä primitiivistä kykyä tarkistetaan ytimessä eri paikoissa. On myös seitsemän muuta primitiivistä ominaisuutta, joihin ei viitata suoraan ytimessä, paitsi map_meta_cap(), joka ottaa kolme edellä mainittua meta-ominaisuutta ja kääntää ne yhdeksi tai useaksi primitiiviseksi ominaisuudeksi, jotka on sitten tarkistettava käyttäjän tai roolin suhteen riippuen konteksti.

  • read - Ohjaa, voidaanko tämän viestityypin objekteja lukea.
  • delete_posts - Ohjaa, voidaanko tämän viestityypin objekteja poistaa.
  • delete_private_posts - Ohjaa, voidaanko yksityisiä objekteja poistaa.
  • delete_published_posts – Hallitsee, voidaanko julkaistuja objekteja poistaa.
  • delete_others_posts - Määrittää, voidaanko muiden käyttäjien omistamia objekteja poistaa. Jos viestityyppi ei tue kirjoittajaa, tämä käyttäytyy kuten delete_posts.
  • edit_private_posts - Ohjaa, voidaanko yksityisiä objekteja muokata.
  • edit_published_posts - Ohjaa, voidaanko julkaistuja objekteja muokata.

Näitä lisäominaisuuksia käytetään vain map_meta_cap(). Ne määritetään oletusarvoisesti vain, jos viestityyppi on rekisteröity "map_meta_cap"-argumentilla, jonka arvo on siis true (oletus on epätosi).

Ei ole koukkuja.

Palauttaa

Esine. Objekti, jolla on kaikki jäsenmuuttujien ominaisuudet.

Käyttö

get_post_type_capabilities($args); $args (kohde vaaditaan) Viestityypin rekisteröintiargumentit.

Huomautuksia

  • Katso: register_post_type()
  • Katso: map_meta_cap()

Luettelo muutoksista

Versiosta 3.0.0 alkaen Otettu käyttöön.

Hanki viestityypin ominaisuuskoodi: wp-includes/post.php WP 5.2.3

capability_type)) ( $args-> capability_type = array($args-> capability_type, $args-> capability_type . "s"); ) // Yksikkökanta metaominaisuuksille, monikkokanta primitiivisille ominaisuuksille. lista($yksikkökanta, $monikkokanta) = $arvot->kyvyn_tyyppi; $default_capabilities = array(// Meta-ominaisuudet "edit_post" => "edit_" . $singular_base, "read_post" => "read_" . $singular_base, "delete_post" => "delete_" . $singular_base, // Primitive capabilities ulkopuolella map_meta_cap(): "edit_posts" => "edit_" . // Map_meta_cap():issa käytetyt primitiiviset ominaisuudet: if ($args->map_meta_cap) ( $default_capabilities_for_mapping = array("read" => "read", "delete_posts" => "delete_" . $plural_base, "delete_private_posts" => "Pullete_Private_". taulukon_yhdistäminen($oletus_ominaisuudet, $oletus_kartoituksen_ominaisuudet ) $ominaisuudet = array_merge($oletusominaisuudet, $args->ominaisuudet); // Viestien luontiominaisuus yksinkertaisesti yhdistää edit_posts-tiedostoon oletuksena: if (! isset($capabilities["create_posts"])) ( $capabilities["create_posts"] = $capabilities["edit_posts"]; ) // Muista meta-ominaisuudet tulevaa käyttöä varten. if ($args->map_meta_cap) ( _post_type_meta_capabilities($capabilities); ) return (objekti) $ominaisuudet; )

Versiosta 2.9 lähtien WordPress on tarjonnut mahdollisuuden käyttää mukautettuja viestityyppejä. Nyt versiossa 3.0 kaikesta on tullut entistä mukavampaa, kun on mahdollista luoda paneeleja mukautetuille viestityypeille. Tässä artikkelissa näytämme, kuinka voit ottaa mukautettuja viestityyppejä käyttöön WordPress-sivustollasi.

Mukautettujen viestityyppien luominen - käytä laajennusta

Nykyään WordPressin versiossa 3.0 ei ole sisäänrakennettua käyttöliittymää mukautettujen viestityyppien luomiseen. Mukautettujen viestityyppien luomiseen on vain kaksi tapaa: laajennukset tai teeman kova koodaus tiedostoksi Functions.php. Ensin tarkastellaan suunnitelman toteuttamista laajennuksia käyttämällä.

Mukautetun viestityypin käyttöliittymä

Custom Post Type UI on Brad Williamsin kehittämä laajennus, jonka avulla voit helposti luoda mukautettuja viestityyppejä ja taksonomioita. Yksi tämän laajennuksen merkittävimmistä ominaisuuksista on, että se luo koodia mukautettujen viestityyppien luomiseksi, jotka voidaan myöhemmin lisätä tiedostoon Functions.php aiheita, ja haittapuoli on, että on mahdotonta käyttää taksonomioita kaikille viestityypeille.

Napsauta Custom Post Type UI -paneelissa "Lisää uusi".

  • "Post Type Name" on mitä WordPress käyttää kyselyyn kaikista post_typen viesteistä.
  • "Label" näkyy konsolin sivupalkissa, kuten tavallinen "Records"-valikko.
  • Jos laajennat "Näytä lisäasetukset", näet useita lisäasetuksia. Useimmat niistä ovat intuitiivisia, kuten "Julkinen" ja "Näytä käyttöliittymä". Ensimmäinen, kun se on vaihdettu True-tilaan, antaa sinun näyttää mielivaltaisen viestityypin valikon sivupalkissa, ja toinen (Näytä käyttöliittymä), kun se on asetettu True-tilaan, luo valikkopalkin.
  • "Uudelleenkirjoitus" sallii mukautettujen viestityyppien käyttää SEO-ystävällisiä WordPress-URL-osoitteita (pysyvät linkit, CNC).
  • Kohdassa "Custom Rewrite Slug" määrität mitä haluat. WordPress käyttää määritettyä etanaa pysyvien linkkien luomiseen. Joten jos meillä on verkkotunnus esimerkki.fi ja slug on "elokuvat", linkkisi mukautettuun viestityyppiin näyttää suunnilleen tältä esimerkki.fi/elokuvat.
  • WordPressin "Query Var" -ominaisuuden avulla voit suorittaa kyselyitä uusille viestityypeille. Jos otamme yllä olevan esimerkin, päästäksesi otsikkoon, Ensimmäinen elokuvapostaukseni joka on post_typessä Elokuvat, voimme tulla sisään example.com/?movies=my-first-movie-post. Siksi pyyntömuuttuja näyttää tältä: ?postityyppinimi

Lopuksi voit valita erilaisia ​​ominaisuuksia, joita haluat mukautetun viestityypin tukevan, kuten pikkukuvat ja lainaukset.

Mukautettujen viestityyppien luominen - käytä Functions.php-tiedostoa

Jos haluat mieluummin luoda mukautettuja viestityyppejä ilman laajennuksia, lisää vain seuraava koodi teemasi functions.php-tiedostoon:

// Luo viestityyppi Movies register_post_type("movies", array("label" => "Elokuvat", "public" => true, "show_ui" => true, "capability_type" => "post", "hierarchical" = > false, "rewrite" => array("slug" => "elokuvat"), "query_var" => true, "supports" => array("nimi", "editori", "ote", "trackbacks" , "custom-fields", "comments", "revisions", "thumbnail", "author", "page-attributes")));

Analysoidaan koodi.

register_post_type($post_type, $args): Tämä funktio ottaa kaksi parametria, $post_type tai viestityypin nimi, ja $args, joukon parametreja.

etiketti: Viestityypille annettu nimi, joka näkyy sivuston hallintapaneelin sivupalkissa.

show_ui: tosi/epätosi. Näyttää tai piilottaa oletuskäyttöliittymän tämän tietuetyypin hallintaan.

capability_type: Oletus: post. Tietueen tyyppi testataksesi luku-, muokkaus- ja poistoominaisuuksia.

hierarkkinen: Onko tietue hierarkkinen.

kirjoittaa uudelleen: tosi/epätosi. Oletus: tosi. Jos slug-parametri on määritetty, etanan nimi lisätään ennen merkintää.

query_var: true/false Asettaa kyselymuuttujan mukautetulle viestityypille.

tukee: Oletus: otsikko ja kirjoittaja . Asettaa erilaisia ​​ominaisuuksia, joita viestityyppi tukee.

Vieraile WordPress Codexissa saadaksesi lisätietoja register_post_type().

näytä mukautetut viestityypit

Jos haluat tulostaa tietueita mukautetusta tyypistäsi, sinun on lisättävä silmukkaan seuraava koodi. Muuta "nimi" viestityypin nimeksi. Huomautus: Sinun ei tarvitse lisätä omia viestityyppejäsi index.php-tiedostoosi. Voit luoda ja suorittaa seuraavan kyselyn silmukan sisällä.

$kysely = uusi WP_Query("viestin_tyyppi=nimi");

Jos haluat tulostaa viestejä useammasta kuin yhdestä viestityypistä, muuta seuraava koodi alla olevaksi koodiksi. Muuttaa elokuvia mukautetun tyyppisi nimeen.

a! Sisällön hallintajärjestelmä WordPress sai tunnustusta useiden vuosien ajan, mutta todellinen läpimurto oli tietueiden tyyppien erottelukyvyn käyttöönotto. Tällä oppitunnilla tarkastellaan lähemmin mukautettuja viestityyppejä, niiden luomista ja käyttöä.

Hieman historiaa

Käytännössä räätälöidyt viestityypit ilmestyivät melko kauan sitten, tarkemmin sanottuna 17.2.2005 lähtien, jolloin WordPress 1.5 Mukautettujen tyyppien tuki on lisätty staattisille sivuille tietokannan post_type-kentän kautta. Wp_insert_post()-funktio on ollut olemassa siitä lähtien WordPress 1.0 joten kun post_type-kenttä otettiin käyttöön versiossa 1.5, se oli melko helppo täyttää tällä funktiolla.

Ja vasta versiossa 2.8 ilmestyi register_post_type()-toiminto mukautettujen tyyppien luomiseen ja joitain muita hyödyllisiä asioita oli saatavana "yökkäisissä rakennusprojekteissa", ja jo 2.9: sta alkaen toiminnot tulivat kaikkien saataville.

Mitä nyt?!

Mukautettu viestityyppi ei ole muuta kuin tavallinen viesti (artikkeli), jolla on tietokannassa tietty post_type-kentän arvo. Tavallisessa viestissä post_type-kentällä on arvo lähettää, sivulla on väliä sivu ja niin edelleen. Voimme kuitenkin nyt luoda omia tyyppejä, jotka määrittelevät viestin sisältämän sisällön yksityiskohdat. Voit luoda mukautettuja viestityyppejä kirjoille, elokuville, vitseille, tuotteille ja muille.
Jos teet oikein, voit saavuttaa seuraavat tulokset muutamalla koodirivillä:

  • Aseta mukautettu tyyppi admin-alueen pääpaneeliin alivalikkokohdilla: luettelo kaikista tämän tyypin merkinnöistä ja luo myös uusi merkintä tällä tyypillä;
  • Luo arkisto tämäntyyppisistä viesteistä, eli tee jotain vastaavaa kuin pääsivu mukautetulle tyypille;
  • Luo luokkia ja tunnisteita, joita voidaan käyttää mukautetuilla viestityypeillä sekä mukautetuilla taksonomioilla.

Erityyppisillä sisällöillä on erilaiset tietovaatimukset. Tavallisiin viesteihin kannattaa lisätä kirjoittaja, luokka ja päivämäärä. "Kirja"-tyyppisen tietueen osalta haluaisin pystyä määrittämään kirjan tekijän, sivumäärän, genren, kustantajan ja muita erityisiä tietoja. Tämä voidaan saavuttaa helposti käyttämällä mukautettuja (metalaatikoita) -alueita tietojen syöttämiseen.

— alueet lisätietojen syöttämiseen suoraan tietueen luontisivulla. Nämä alueet helpottavat mukautettujen viestityyppien käyttöä.


Työskentely mukautettujen viestityyppien kanssa

Jotta voit luoda ja käyttää mukautettuja viestityyppejä tehokkaasti, sinun tulee tuntea seuraavat asiat:

  • Mukautettujen viestityyppien luominen;
  • Mukautetun taksonomian luominen;
  • Mukautettujen tietoalueiden luominen.

Mukautettujen viestityyppien luominen

Ensimmäinen asia, joka sinun on tehtävä, on luoda itse mukautettu viestityyppi. Ihannetapauksessa voit luoda laajennuksen käsittelemään mukautettuja viestityyppejä, mutta voit myös käyttää teemasi functions.php-tiedostoa.

1
2
3
4
5


$args = array () ;
}

Tämä on yksinkertaisin tapa luoda tyyppi, jolla ei käytännössä ole asetuksia. Uuden viestityyppimme kehittämiseksi käytämme joitain yleisimmin käytetyistä vaihtoehdoista ja lisäämme ne aiemmin tyhjään $args-taulukkoon.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

funktio my_custom_post_product() (
$labels = array (
"nimi" => _x( "Tuotteet" , "viestityypin yleinen nimi") ,
"singular_name" => _x( "Tuote" , "viestityypin yksikkönimi") ,
"add_new" => _x( "Lisää uusi" , "tuote" ) ,
"add_new_item" => __( "Lisää uusi tuote" ) ,
"edit_item" => __( "Muokkaa tuotetta" ) ,
"new_item" => __( "Uusi tuote") ,
"all_items" => __( "Kaikki tuotteet" ) ,
"view_item" => __( "Näytä tuote" ) ,
"search_items" => __( "Etsi tuote") ,
"not_found" => __( "Tuotteita ei löytynyt" ) ,
"not_found_in_trash" => __( "Ei tuotteita poistettu" ) ,
"parent_item_colon" => "" ,
"menu_name" => "Tuotteet"
) ;
$args = array (
"labels" => $labels ,
"kuvaus" => "Muokattu tuotetietuetyyppi",
"julkinen" => totta,
"menu_position" => 5,
"supports" => array ("nimi" , "editori" , "pikkukuva" , "ote" , "comments" , "product_category" ) ,
"has_archive" => true ,
) ;
register_post_type( "tuote" , $args ) ;
}
add_action( "aloitus" , "oma_mukautettu_postituote" ) ;

  • tarrat— tätä tarraryhmää käytetään kuvaamaan aiheeseen luotavaa mukautettua viestityyppiä./li>
  • kuvaus- yhteenveto luodusta mukautetusta viestityypistä, mitä se tekee ja miksi käytämme sitä.
  • julkinen— käytetäänkö mukautettua tyyppiä julkisesti ja näytetäänkö se hallintoalueella. Tässä tapauksessa totuus on selvitetty.
  • menu_position- tyyppimme valikkokohdan sijainti päähallintapaneelissa. Arvo 5 tarkoittaa, että kohde asennetaan välittömästi "Records"-valikkokohdan jälkeen, jos 10 tarkoittaa "Mediatiedostot"-kohdan jälkeen jne.
  • tukee— Tämä vaihtoehto sisältää taulukon, joka kuvaa kentät, joita voimme muokata tietueen luontisivulla. Eli otsikko - näkyviin tulee kenttä viestin nimen kirjoittamista varten, editori - tekstialue näytetään viestin tekstin kirjoittamista varten jne. Myös käytetty mukautettu taksonomia, product_category , ilmoitetaan.
  • has_archive- jos se on tosi, luodaan uudelleenkirjoitussääntö, jonka avulla voit saada luettelon meidän tyyppisistä tietueista osoitteessa http://mysite.com/product/



Kun olet asentanut tämän koodin function.php-tiedostoon, sinun pitäisi nähdä mukautetun viestityypin valikko. Nyt on mahdollista lisätä tietue ja tarkastella tietueluetteloa.

Nämä eivät kuitenkaan ole kaikki vaihtoehdot useille argumenteille. Löydät täydellisen luettelon vaihtoehdoista ja kaikista mukautettujen tyyppien ominaisuuksista.

Interaktiiviset hälytykset

WordPress luo joitain viestejä, jotka käynnistyvät käyttäjän toimista. Voimme myös luoda samanlaisia ​​viestejä ilmoittamaan käyttäjälle, kun työskentelet tyyppien kanssa. Tämän tekee post_updated_messages.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

function my_updated_messages( $viestit ) (
globaali $post , $post_ID ;
$viestit["tuote"] = array(
0 => "" ,
1 => sprintf ( __( "Tuote päivitetty. Näytä"
2 => __() ,
3 => __("Mukautetut kentät päivitetty.") ,
4 => __("Tuote päivitetty.") ,
5 => isset ($_GET [ "versio" ] ) ? sprintf (__( "Tuote palautettu versioon %s") , wp_post_revision_title( (int) $_GET [ "versio" ] , false ) ) : false ,
6 => sprintf ( __( "Tuote julkaistu. Näytä") , esc_url( get_permalink($post_ID ) ) ) ,
7 => __("Tuote tallennettu.") ,
8 => sprintf ( __( "Tuote lähetetty. Näytä"
9 => sprintf ( __( "Tuote on suunniteltu: %1$s. Katso") , date_i18n( __( "M j, Y @ G:i" ) , strtotime ( $post -> post_date ) ), esc_url( get_permalink($post_ID ) ) ,
10 => sprintf ( __( "Tuoteluonnos päivitetty. Näytä") , esc_url( add_query_arg( "esikatselu" , "true" , ​​​​get_permalink($post_ID ) ) ),
) ;
palauttaa $viestit ;
}
add_filter( "post_updated_messages" , "my_updated_messages" ) ;

Huomaa, että voit asettaa hälytyksiä kaikille mukautetuille viestityypeille käyttämällä tätä yhtä ominaisuutta. Jos et määritä tyypin nimeä, hälytyksiä käytetään kaikille mukautetuille tyypeille.


Kontekstuaalisia vihjeitä toteutetaan ja käytetään harvoin. Käyttäjänä en ole koskaan käyttänyt tätä ominaisuutta, mutta olen varma, että joku käyttää niitä. Joten luodaan tällainen kontekstuaalinen apu.
Asiayhteyteen liittyvät vihjeet sijaitsevat oikeassa yläkulmassa, lähellä näytön asetusvälilehteä.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

function my_contextual_help( $contextual_help , $screen_id , $screen ) (
if ( "muokkaa tuotetta" == $näyttö -> tunnus ) (

$contextual_help = "

Tuotteet


Tällä sivulla on luettelo kaikista sivustolla myytävistä tuotteista. Merkinnät ovat käänteisessä kronologisessa järjestyksessä, ja viimeiset kohteet ovat ne kohteet, jotka lisäsimme ensin.


Voit tarkastella/muokata kunkin tuotteen tietoja napsauttamalla sen nimeä, tai voit suorittaa joukkotoimintoja käyttämällä avattavaa valikkoa valitsemalla useita kohteita.

" ;

) elseif ( "tuote" == $näyttö -> tunnus ) (

$contextual_help = "

Tuotteen luominen/muokkaus


Tällä sivulla voit luoda tuotteen tai muokata sitä koskevia tietoja. Muista täyttää lisäkentät.

" ;

}
return $contextual_help ;
}
add_action("contextual_help" , "my_contextual_help" , 10 , 3 ) ;

Jotta voimme näyttää tällaisen vihjeen, meidän on tiedettävä näytön tunniste. Jos sinun on luomisen aikana selvitettävä näyttötunnus, tee tämä:

echo $screen -> id ;



Mukautettu taksonomia

Tavallisessa blogissa kategoriat ja tagit riittävät luomaan organisaatiorakenteen. Vaikka mukautetuille viestityypeille tämä ei aina riitä. Mukautettu taksonomia voi ratkaista tämän ongelman. Meidän tapauksessamme "Tuotekategoriat" -niminen taksonomia, jota käytetään vain viesteissä, joissa on mukautettu tyyppi "Tuotteet".

Muokatun taksonomian luontiprosessi on lähes identtinen mukautettujen viestityyppien luomisen kanssa. Katsotaanpa esimerkkiämme:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

funktio my_taxonomies_product() (
$labels = array (
"nimi" => _x( "Tuoteryhmät", "taksonomian yleinen nimi") ,
"yksittäinen_nimi" => _x( "Tuotekategoria", "taksonomian yksikkönimi") ,
"search_items" => __( "Etsi tuoteluokka" ) ,
"kaikki_kohteet" => __( "Kaikki tuoteluokat" ) ,
"parent_item" => __( "emotuoteluokka" ) ,
"parent_item_colon" => __( "emotuoteluokka:" ) ,
"edit_item" => __( "Muokkaa tuoteluokkaa" ) ,
"update_item" => __( "Päivitä tuoteluokka" ) ,
"add_new_item" => __( "Lisää uusi tuoteluokka" ) ,
"new_item_name" => __( "Uusi tuoteluokka" ) ,
"menu_name" => __( "Tuoteryhmät" ) ,
) ;
$args = array (
"labels" => $labels ,
"hierarkkinen" => tosi ,
) ;
register_taxonomy( "tuoteluokka" , "tuote" , $args ) ;
}
add_action( "aloitus" , "oma_taksonomit_tuote" , 0 ) ;

Kuten luodessasi mukautettua tyyppiä, muodostimme tarrataulukon ja osoitimme, että hierarkkinen rakenne on olennainen luodun taksonomian kannalta (eli voi olla ylä- ja alaelementtejä) - tämä on tyypillistä tavallisten viestien luokille. Muussa tapauksessa, jos rakenne ei ole hierarkkinen, luodaan tavalliset tunnisteet. Voit lukea lisää taksonomiasta.


Lisätietoalueet

Voit nähdä muita alueita tai lohkoja tietojen syöttämistä varten (metaruudut) viestien muokkaussivulla. Kaikki tietävät standardit, kuten luokan tai tunnisteiden valitsemisen. Joissakin aiheissa on myös vaihtoehtoja, joiden avulla voit liittää kuvan julkaisuun jne.

Koska luomme mukautetun tyypin "Tuotteet", tarvitsemme luonnollisesti tuotteen hinnan, katsotaanpa räätälöityjen luomisprosessia.

Luontiprosessi voidaan jakaa 3 vaiheeseen:

  • Itse lohkon määritelmä;
  • sisällön määrittäminen (mitä kenttiä lohkossa on);
  • Kuvaus syötetyn tiedon käsittelyn algoritmeista.

Määritelmä metalaatikot

1
2
3
4
5
6
7
8
9
10
11

add_action("add_meta_boxes" , "product_price_box" ) ;
funktio product_price_box() (
add_meta_box(
"product_price_box" ,
__("Tuotteen hinta" , "myplugin_textdomain") ,
"product_price_box_content" ,
"tuote"
"puoli"
"korkea"
) ;
}

Yllä oleva koodi luo lohkon seuraavilla parametreilla:

  • product_price_box— metalaatikon yksilöllinen tunniste (sen ei tarvitse vastata funktion nimeä);
  • Tuotteen hinta— sen metaruudun nimi, jonka järjestelmänvalvoja näkee sivulla;
  • tuotteen_hintalaatikon_sisältö— toiminto, joka näyttää ikkunan sisällön;
  • tuote— mukautetun postityypin nimi, johon metalaatikot kuuluvat;
  • puolella— lohkon sijainti sivulla (sivulla, normaali tai edistynyt – oletusarvoisesti);
  • korkea— metaruutujen prioriteetti (tässä tapauksessa "korkea", lohko sijaitsee aivan sivupalkin yläosassa. Vaihtoehdot: korkea, ydin, matala tai oletusarvoisesti).

Sisällön määritelmä

1
2
3
4
5

funktio product_price_box_content( $post ) (
wp_nonce_field( plugin_basename( __FILE__ ) , ) ;
kaiku "" ;
kaiku "" ;
}

Lisäämme vain yhden kentän tuotteen hinnan syöttämiseksi. Huomaa, että funktion nimi vastaa kolmannen parametrin arvoa, kun se on ilmoitettu (koodi yllä).

Syötettyjen tietojen käsittely

Viimeinen vaihe on tallentaa syötetty tuotteen hinta tietokantaan.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

add_action("save_post" , "product_price_box_save" ) ;
funktio product_price_box_save( $post_id ) (

if (defined("DOING_AUTOSAVE") && DOING_AUTOSAVE)
paluu;

if ( ! wp_verify_nonce( $_POST [ "product_price_box_content_nonce"] , plugin_basename( __FILE__ ) ) )
paluu;

if ( "sivu" == $_POST [ "post_type" ] ) (
if ( ! current_user_can( "edit_page" , $post_id ) )
paluu;
) muu (
if ( ! current_user_can( "edit_post" , $post_id ) )
paluu;
}
$tuotteen_hinta = $_POST [ "tuotteen_hinta" ] ;
update_post_meta( $post_id , "product_price" , $product_price ) ;
}

Suurin osa toiminnoista on tarkastuksia. Ensinnäkin automaattinen tallennus on valittuna, hintaa ei tallenneta ennen kuin painetaan tallennus- tai päivityspainiketta. Tämän jälkeen tarkastetaan pääsyoikeudet tämän postauksen tietojen muokkaamiseen ja vasta sen jälkeen päivitys_post_meta-funktiolla hinta syötetään tietokantaan.

Luodun tyyppisten viestien näyttäminen blogissa

Olemme käyneet läpi kaikki mukautetun postaustyypin luomisen vaiheet, jäljellä on vain hyödyntää työmme hedelmät ja luoda blogiin julkaisujen näyttö luomamme taksonomian mukaisesti.

Koska mukautetun tyypin luomisen aikana määritimme has_archive-parametrille true, tuotetyypin tietueiden luettelo on saatavilla osoitteessa http://mysite.com/product/ .

Arkisto-.php-tiedostoa (tässä tapauksessa archive-product.php) käytetään näyttämiseen, jos sellainen on olemassa. Muussa tapauksessa näyttöön käytetään tiedostoa archive.php ja jos tällaista tiedostoa ei ole teemassa, se käyttää )
) ;
$tuotteet = uusi WP_Query( $args ) ;
if ( $tuotteet -> have_posts () ) (
while ( $products -> have_posts () ) (
$tuotteet -> the_post () ;
?>
< h1>
< div class = "content" >


}
}
muu(
kaiku "Voi ei, ruokaa ei löytynyt!";
}
?>

Hinnan näyttö

Syötetyt lisätiedot, meidän tapauksessamme tuotteen hinta, voidaan hakea get_post_meta() -funktiolla. Koska käytämme lisäksi product_price -kenttää, hinta-arvon saamiseksi:

Laajennus mukautettujen viestityyppien luomiseen

Jos et ole varma ohjelmointikyvystäsi, voit aina löytää valmiin ratkaisun (plugin) ja käyttää sitä. Mukautetut tyypit eivät ole poikkeus. Kytkeä WCK Custom Post Type Creator avulla voit helposti luoda mukautettuja viestityyppejä WordPressille ilman koodaustietoa.

Hyvää päivää, rakkaat Habran asukkaat, olen tehnyt Web-sivustoja Wordpressissä monta vuotta ja päätin jakaa kokemukseni. Olin erittäin tyytyväinen aleksandritin aiemmin julkaisemaan uutiseen, että "WordPressiä käytetään jo yli 50 miljoonalla sivustolla", tämä uutinen inspiroi meitä tutkimaan yhä enemmän Wordpressin syviä ja piilotettuja ominaisuuksia. Samanlaisen aiheen julkaisi aiemmin bRuz, mutta haluaisin lähestyä asiaa eri tavalla, askel askeleelta.

Aloitetaan siis ilmeisestä.

Miksi tarvitsemme mukautetun viestityypin?

Custum post -tyypin päätarkoitus on antaa kehittäjälle mahdollisuus järjestää tietoja sivustolla. esimerkiksi: jos puhumme blogista, meillä on useita erilaisia ​​tietoja (viestit, mediatiedostot, sivut ja linkit). Mutta mitä niiden, joilla on oma verkkosivusto, pitäisi tehdä? mitä uutta elokuvateollisuudessa? tällainen sivusto tarvitsee postauksen tyypin, kuten "Arvostelu", arvostelulla tulee olla seuraavat ominaisuudet: genre, julkaisuvuosi, kansi, näyttelijät jne... custum-viestityypin käyttäminen, toisin kuin tavalliset viestit, antaa meille mahdollisuuden käyttää nämä tiedot mallissa sekä etsiä tiettyjen parametrien mukaan ja lajitella.

Aloitetaan luominen

Uuden viestityypin luomiseksi meidän on muokattava functions.php-tiedostoa, joka sijaitsee käytetyn mallin hakemistossa.

Funktio create_post_type() ( // luo uusi viestityyppi

array(
"labels" => array(
"name" => __("Arvostelut"), // anna ohjauspaneelin osiolle nimi
"singular_name" => __("Yleiskatsaus") // anna yhden merkinnän nimi
),
"julkinen" => totta,
"menu_position" =>
"rewrite" => array("slug" => "arvostelut") // määritä slug linkeille esimerkiksi: http://omasivusto/arvostelut/
);
}

Ja niin se tapahtui
Huomaa, että arvostelut-välilehti on ilmestynyt vasempaan paneeliin.

Kuten tästä kuvasta näemme, meillä on pari ongelmaa. Otsikko on edelleen "Lisää merkintä", eikä kansikuvaa voi lisätä. Yritetään korjata tämä, tätä varten meidän on lisättävä pari parametria (etsi koodista täydellinen luettelo parametreista).
funktio create_post_type() ( // luo uusi viestityyppi
register_post_type("arvostelut", // osoittavat tyyppien nimet
array(
"labels" => array(
"name" => __("Arvostelut"), // anna ohjauspaneelin osiolle nimi
"singular_name" => __("Arvostelu"), // anna yhden merkinnän nimi
"add_new" => _x("Lisää uusi"), // järjestelmänvalvojan venäläistäminen. paneelit
"add_new_item" => __("Lisää uusi arvostelu"),
"edit_item" => __("Muokkaa arvostelua"),
"new_item" => __("Uusi arvostelu"),
"all_items" => __("Kaikki arvostelut"),
"view_item" => __("Näytä arvostelu"),
"search_items" => __("Hakuarvostelu"),
"not_found" => __("Ei arvosteluja"),
"not_found_in_trash" => __("arvosteluja ei löytynyt"),
"menu_name" => "Arvostelut"

),
"julkinen" => totta,
"menu_position" => 5, // osoittavat sijainnin vasemmassa säiliöpaneelissa
"rewrite" => array("slug" => "arvostelut"), // määritä slug linkeille esimerkiksi: http://omasivusto/arvostelut/
"supports" => array("otsikko", "editori", "pikkukuva", "versiot")// Tässä aktivoimme pikkukuvien tuen
);
}

Add_action("aloitus", "luo postauksen_tyyppi"); // aloittaa tyypin lisäykset

Tulos:

Ja niin, nyt olemme täysin korjanneet venäläistyksen ja mahdollistaneet pikkukuvien liittämisen uuteen viestityyppiimme. Nyt voimme luoda mallin, joka näyttää viestimme.

Silmukka

Ollakseni rehellinen, voin ajatella kahta tapaa näyttää uusi viestityyppi. ja niin esimerkkejä:
Ensimmäinen tapa: Käytä mallitiedostoa, oletetaan, että uuden postauksen tyyppiä kutsutaan "arvosteluiksi", tässä tapauksessa luomme tiedoston nimeltä archive-reviews.php näyttääksesi useita viestejä ja single-reviews.php näyttääksesi yhden postauksen (offtopic. Kiva esimerkki kaikkien mallien hierarkiasta näkyy täydellisesti tässä infogrammissa), käytämme yksinkertaista koodia toistamaan tietueita:
tavallinen taulukkoiteraatio
the_title();

kaiku "";
the_content();
kaiku "";
loppuun asti;

Toinen tapa: silmukan kutsuminen mistä tahansa mallin osasta,
$args = array("post_type" => "arvostelut", "posts_per_page" => 10);//tässä ilmoitamme, minkä tyyppistä viestiä haluamme käydä läpi ja kuinka monta viestiä yhdellä sivulla on
$silmukka = new WP_Query($args);// saada kyselyn tulos silmukkamuuttujaan
while ($silmukka->have_posts()) : $silmukka->viesti(); // sitten vakioiteraatio taulukon läpi
the_title();
php the_post_thumbnail(array(150,150)); //hae viestin pikkukuva
kaiku "";
the_content();
kaiku "";
loppuun asti;

Toivottavasti pidit siitä ja artikkelista oli hyötyä, silti ensimmäinen viesti. Tällaisen yksinkertaisen työkalun myötä wordpressistä on tullut täysimittainen cms, vaikka se sijoittuu edelleen blogiksi.

Ensi kerralla haluaisin paljastaa sellaisen upean ominaisuuden kuin taksonomiat ja mukautetut kentät

Tunnisteet: wordpress, cms, verkkosivujen kehitys, wordpress 3.3