Tipul de înregistrare trebuie să fie creat în momentul cârligului de inițiere. Acesta nu va fi creat dacă funcția este atașată înainte de init și poate să nu funcționeze corect dacă este utilizată ulterior.
Ca nume pentru un nou tip de înregistrare, trebuie să specificați un nume unic diferit de taxonomiile existente, tipurile de înregistrări și variabilele publice și private rezervate WordPress.
De la versiunea 4.6 a fost creată o nouă clasă WP_Post_Type și toate codurile de funcții sunt tratate acum de această clasă, iar această funcție a devenit o împachetare pentru aceasta.
taxonomii
Taxonomiile trebuie înregistrate separat. Ie Deși ați specificat o taxonomie la înregistrarea unui nou tip de înregistrare, trebuie să înregistrați separat aceste taxonomii folosind register_taxonomy ().
Tipuri de posturi rezervate
Nu puteți utiliza următoarele nume pentru tipuri noi de posturi, deoarece acestea sunt utilizate de WordPress:
- post. pagina. atașament. revizuire. nav_menu_item - tipuri de posturi WordPress;
- acțiune. comandă. temă - nume care sunt utilizate în funcțiile WordPress.
Pentru a evita conflictele cu tipurile de posturi deja utilizate, este recomandat să folosiți un prefix în numele unui nou tip de post sau să specificați o linie unică.
Cârlige din funcție:
se întoarce
Obiect WP_Post_Type (de la versiunea 4.6).
utilizarea
Important: După crearea unui nou tip de înregistrare. Trebuie să accesați Setări> Legături constante și să faceți clic pe butonul Salvați modificările. Acest lucru este necesar pentru ca regulile CNC să fie recreate și să se adauge regulile unui nou tip de înregistrare.
Șablon pentru crearea unui nou tip de înregistrare
$ post_type (șir) (obligatoriu) Numele tipului de înregistrare (maximum 20 de caractere). Poate conține numai caractere minuscule, numere, _ sau -. o-z0-9_-.
Implicit: nu $ args (array) Array of arguments.
Implicit: niciunul
Argumente pentru parametrul $ args
eticheta (șir) Numele tipului de înregistrare marcat pentru traducerea în altă limbă.
Implicit: $ post_type
Un matrice care conține numele etichetelor pentru tipul de înregistrare.
Pentru un nou tip de înregistrare, în cazul în care liniile sunt necunoscute de a folosi numele (eticheta) „posturi“ nu au tipuri de arbori și comenzi rapide „pagini permanente“ tipuri de copaci. Consultați get_post_type_labels ()
În matrice, puteți specifica următoarele argumente:
Implicit: dacă nu este setat, numele și singular_name acceptă valoarea argumentului etichetei
descriere (șir) O scurtă descriere a acestui tip de înregistrare.
Implicit: ''
Stabilește dacă tipul de înregistrare este public sau nu. Pe baza acestui parametru, multe altele sunt construite, adică acesta este un fel de preinstalare pentru următorii parametri:
- show_ui = false - nu afișați interfața cu utilizatorul (UI) pentru acest tip de înregistrare
- publicly_queryable = false - interogările legate de acest tip de înregistrări nu vor funcționa în șablon
- exclude_from_search = true - acest tip de înregistrări nu vor fi luate în considerare la căutarea pe site
- show_in_nav_menus = false - acest tip de intrări va fi ascuns din selecția meniului de navigare
- show_ui = adevărat
- publicly_queryable = adevărat
- exclude_from_search = false
- show_in_nav_menus = true
Implicit: fals
publicly_queryable (Boolean) Interogările legate de acest tip de înregistrări vor funcționa în interfața frontală (în șablonul site-ului).
Valoare implicită: valoarea globală a argumentului (public)
Excludeți acest tip de intrări de la căutarea de pe site. 1 (adevărat) - da, 0 (fals) - nr.
Implicit: valoarea inversă a argumentului public
Stabilește dacă se creează logica pentru a controla tipul de intrări din panoul de administrare. Trebuie să creez o înregistrare tip UI pentru a putea fi gestionată.
De exemplu, dacă specificați adevărat. și în show_in_menu = false. Apoi vom avea ocazia să mergem la pagina de gestionare a tipului de înregistrare, adică motorul va înțelege și va procesa astfel de solicitări, dar link-urile către această pagină nu vor fi în meniu.
Implicit: valoarea argumentului public
Afișați tipul de intrare din meniul de administrare și exact unde să se afișeze controlul tipului înregistrării. Argumentul show_ui trebuie să fie activat!
- false - nu se afișează în meniul de administrare.
- true - arată ca un meniu de prim nivel.
- line - afișare ca un prim nivel sub-meniuri, cum ar fi un submeniu pentru „tools.php“ sau „? edit.php post_type = pagina“ $ menu_slug trebuie să specifice pentru orice tipuri de meniuri, vezi add_menu_page () ..
NOTĂ: În cazul în care linia este utilizată pentru a arăta modul în care sub-meniu, o parte din meniul principal, creat de plugin-ul, acest lucru va fi primul element din listă și modificați locația elementelor de meniu. Pentru ca acest lucru să se întâmple, în plug-in-ul care creează meniul, trebuie să setați prioritatea pentru acțiunea admin_menu 9 sau mai mică.
Implicit: null
show_in_admin_bar (Boolean) Faceți acest tip disponibil din bara de administrare.
Implicit: null ($ show_in_menu value)
show_in_nav_menus (Boolean) Activați abilitatea de a selecta acest tip de intrare în meniul de navigare.
Valoare implicită: valoarea globală a argumentului
show_in_rest (Boolean) Fie să includă tipul de înregistrare în API-ul REST. Cu WP 4.7.
rest_base (șir) O comandă rapidă pentru API-ul REST. În mod prestabilit, numele tipului de înregistrare. Cu WP 4.7.
Implicit: $ post_type
rest_controller_class (șir) Numele clasei de controler din API-ul REST. Cu WP 4.7.
Implicit: "WP_REST_Terms_Controller"
Poziția în care trebuie să se găsească meniul noului tip de înregistrare:
Implicit: null
Un șir care va fi un marcator pentru setarea drepturilor pentru acest tip de înregistrare.
Marcatorii încorporați sunt: post și pagină.
Puteți trece o matrice unde prima valoare va fi folosită pentru singular, iar cea de-a doua pentru plural, de exemplu: array ('story', 'stories'). Dacă un șir este trecut, atunci "s" la sfârșit este pur și simplu adăugat pentru plural.
capability_type este folosit pentru a construi o listă de drepturi care vor fi scrise în parametrul "capabilități".
Dacă setați un marcator nonstandard (nu postați sau nu), parametrul map_meta_cap poate fi setat la true sau false:
- Dacă este setat la true, WordPress va genera automat un grup de permisiuni pentru parametrul "capabilități" bazat pe datele introduse aici. În acest caz, drepturile specificate în parametrul "capabilități" vor completa lista existentă de drepturi.
- Dacă setați false, WordPress nu va genera nimic și va trebui să scrieți pe deplin toate drepturile posibile pentru acest tip de înregistrare în parametrul "capabilități".
Implicit: "postare"
Exemplu: să presupunem că am specificat aici factura de coarde care este echivalentă cu matricea ("factura", "facturile"). atunci WordPress va genera automat următoarele drepturi pentru parametrul "capabilități":
Pentru a vedea ce drepturi au fost create, examinați variabila globală: $ GLOBALS ['wp_post_types'] ['bill'].
O serie de drepturi pentru acest tip de înregistrare.
În mod implicit, sunt disponibile 8 elemente de matrice care definesc drepturile pentru acest tip de înregistrare (chiar dacă map_meta_cap = false), acesta este:
Există și 8 drepturi primitive care nu se referă direct la kernel. Dar se referă la funcția map_meta_cap () și verificați acolo. Acestea sunt setate automat dacă parametrul map_meta_cap = true este specificat:
Acest parametru de capabilități este de obicei setat automat, bazat pe "capability_type". De exemplu, dacă setați „capability_type“ și „map_meta_cap“ și uite în variabila $ GLOBALS [ „wp_post_types“] [ „post_type“]. atunci vom vedea un astfel de obiect:
unde, s este un plural.
Implicit: argumentul capability_type este folosit pentru a construi o listă de permisiuni
Notă: dacă este setat la "false", rolul "Administrator" standard nu poate modifica acest tip de înregistrare. Pentru a elimina această restricție, trebuie să adăugați dreptul de editare la rolul de administrator.Implicit: fals
Înregistrările de acest tip vor avea o structură arborescentă (cum ar fi paginile permanente).
Implicit: fals
Câmpuri auxiliare de pe pagină pentru crearea / editarea acestui tip de înregistrare. Etichete pentru a apela funcția add_post_type_support ().
Implicit: matrice ("titlu", "editor")
register_meta_box_cb (string) Funcția de apel invers care va fi declanșată la setarea meta-blocurilor pentru pagina de creare / editare a acestui tip de înregistrare. Utilizați remove_meta_box () și add_meta_box () în funcția de apel invers.
Implicit: niciunul
O serie de taxonomii înregistrate care vor fi asociate cu acest tip de înregistrare, de exemplu: category or post_tag.
Puteți asocia o taxonomie cu o înregistrare mai târziu prin intermediul funcției register_taxonomy_for_object_type ().
Taxonomiile trebuie să fie înregistrate utilizând funcția register_taxonomy ().
Implicit: niciunul
Indexul finalului cu care va fi asociat tipul de înregistrare creat. Ca regulă, acest parametru nu este utilizat. Aici puteți specifica urmă. constante sau o combinație a acestora conectate prin :
Punctul final este ceea ce se adaugă la sfârșitul adresei URL, de exemplu / trackback /. Punctele finale sunt atașate la tipul de înregistrare (adăugat la regulile de rescriere) utilizând funcția add_rewrite_endpoint ().
Acest parametru vă permite să specificați ce grup de parametru doriți să vă conectăm la tipul de înregistrare creat (la adresa URL a înregistrării). De exemplu, dacă specificați "permalink_epmask" = EP_PAGES EP_TAGS. atunci tipul de înregistrare va avea toate punctele finale furnizate pentru paginile și etichetele permanente.
Implicit permalink_epmask = EP_PERMALINK - acest lucru înseamnă că, în URL-ul generat de tipul de înregistrare (în regulile CNC) vor fi adăugate la punctele finale care sunt adăugate la intrările WordPress obișnuite.
Dacă nu este necesar să adăugați puncte finale unui nou tip de înregistrare, trebuie să specificați EP_NONE. Sau specificați EP_ALL. când trebuie să adăugați toate obiectivele.
Implicit: EP_PERMALINK
. Activați suportul pentru pagina arhivă pentru acest tip de înregistrare (pr înregistrare RLC arata ca acest lucru :. Site.ru/type/post_name atunci arhiva RLC va fi astfel: site.ru/type.
Dacă specificați un șir, va fi utilizat în CNC. De exemplu, vom specifica tipul de pagină aici și vom obține un link la o arhivă a tipului unei intrări de acest tip: site.ru/typepage
Fișierul acestei arhive în subiect va arăta ca arhiva-type.php). Pentru arhive, va fi adăugată o nouă regulă CNC dacă argumentul de rescriere este activat.
Implicit: fals
Fie pentru a utiliza CNC pentru acest tip de înregistrare. Pentru a evita utilizarea CNC, specificați falsul. Implicit: true - numele tipului de înregistrare este folosit ca prefix în legătură. Puteți specifica parametri suplimentari în matrice pentru construirea CNC:
sarm (șir)
Prefixul în CNC (/ prefix / shortcut_record). Utilizați array ('slug' => $ slug). pentru a crea un alt prefix.
În acest parametru, puteți specifica substituenții de tip% category%. Dar trebuie să le creați folosind add_rewrite_tag () și să le predați WP pentru a le înțelege.
Implicit: numele tipului de înregistrare
cu_front (logic)
Trebuie să introduc mai întâi prefixul general din setări. Prefixul este preluat din $ wp_rewite-> din față. De exemplu, dacă structura legăturilor permanente de înregistrări din setări este de forma blog /% postname%. apoi la false primim: / news / post_name. iar la adevărat obținem: / blog / news / post_name.
Implicit: adevărat
feed-uri (logice)
Fie că doriți să adăugați o regulă CNC pentru fluxul RSS al acestui tip de înregistrare.
Implicit: valoarea has_archive
Fie să adăugăm regula CNC pentru paginarea arhivei înregistrărilor de acest tip. Pr: / post_type / page / 2.
Implicit: adevărat
Implicit: true (tipul de înregistrare este folosit ca prefix)
query_var (line / logice) Pune false, pentru a elimina posibilitatea de a cererilor sau pentru a seta numele de interogare pentru acest tip de înregistrare.
Implicit: true - setați argumentul la $ post_type
can_export (boolean) Abilitatea de a exporta acest tip de înregistrări.
Implicit: adevărat
true - ștergeți înregistrări de acest tip care aparțin utilizatorului atunci când utilizatorul este șters. Dacă coșul este activat, înregistrările nu vor fi șterse, ci vor fi plasate în coșul de gunoi.
false - atunci când utilizatorul este șters, înregistrările sale de acest tip nu vor fi procesate în nici un fel.
null - înregistrările vor fi șterse sau vor fi mutate în coșul de gunoi dacă este instalat post_type_supports ("autor"). Și nu va fi procesată dacă nu există suport pentru "autor" pentru tipul de înregistrare.
Implicit: null
_builtin (Boolean) Pentru uz intern! Adevărat dacă este un tip de înregistrare încorporat / intern.
Implicit: fals
_edit_link (șir) Pentru uz intern! O parte din adresa URL din linkul pentru a edita acest tip de înregistrare.
Implicit: 'post.php? Post =.'
# 1 Înregistrați un nou tip de înregistrare
Exemplu de înregistrare a unui tip arbitrar de înregistrări "de carte". De asemenea, exemplul arată modul de activare a mesajelor la actualizarea și asistența pentru secțiunea de ajutor.
Secțiunea "ajutor" a cărții de tip carte:
# 2 Adăugarea unui element de taxonomie la CNC
Pentru un nou tip de înregistrare, puteți specifica NC-uri diferite utilizând parametrul de rescriere. Acest exemplu arată modul de adăugare a unui nou tip de înregistrare de taxonomie la CNC.
Pentru a face acest lucru, trebuie să specificați argumentul slug în parametrul de rescriere atunci când înregistrați tipul de înregistrare:
Acum trebuie să adăugați un cârlig pentru a înlocui% produse% în obținerea de intrare prin link-uri get_permalink () și derivatele funcțiilor sale:
# 3 Adăugarea taxonomiei la CNC
Acest exemplu arată modul de creare a unei intrări de tip Întrebări și secțiuni pentru aceasta. În acest caz, CNC va:
Plugin pentru înregistrarea tipului de înregistrare
Există un plugin convenabil care vă permite să înregistrați noi tipuri de postări (postări) și noi taxonomii: Custom Post Type UI
Redenumiți antetele tip de înregistrare
Dacă tipul de înregistrare este deja înregistrat, dar trebuie să îl numim într-un fel diferit, utilizați următorul cod.
Acest cod arată modul de redenumire a tipului standard de înregistrare a "Înregistrări" în "Articole":
Codul este tipul postului de înregistrare. wp-include / post.php WP 4.8.3
Funcții înrudite
De la etichetă: extensii de extensii
Am făcut un nou tip de înregistrări create Grilele, creând un post, selectați titlul - totul este în regulă. Am obține URL-ul de tipul site-ului / custposttupe / namecat / namepost, dar dacă schimbați poziția, postul va fi disponibil ca un link de pe site-ul / custposttupe / namecat / namepost și noul site de referinta / custposttupe / namecat-2 / namepost. Cum s-ar vindeca asta? Dublurile nu sunt dureroase. Mulțumesc.