Cum să creați un tip de postare personalizat WordPress în mod programatic
Publicat: 2021-10-05Doriți să publicați tipuri de postări personalizate pe site-ul dvs.? Vă avem acoperit. În acest ghid, vă vom învăța cum să creați un tip de postare personalizat WordPress în mod programatic cu un pic de cod.
Inițial, WordPress a fost creat pentru a publica postări. Cu toate acestea, după toți acești ani, WordPress este mult mai mult decât o platformă pentru a publica postări. În zilele noastre, este cea mai completă soluție web care alimentează aproape 40% din toate site-urile web.
Chiar dacă a încorporat multe funcționalități, post-publicarea este încă una dintre cele mai bune modalități de a atrage utilizatori pe site-ul tău și de a-i menține implicați. WordPress oferă tipuri de postări implicite, dar dacă doriți să vă personalizați site-ul și să îl faceți unic pentru a ieși în evidență față de concurenți, crearea unor tipuri de postări personalizate poate fi o soluție bună.
În acest tutorial, vă vom arăta cum să creați și să publicați tipuri de postări personalizate WordPress în mod programatic . Înainte de a trece la asta, să înțelegem mai bine ce sunt exact tipurile de postări personalizate și când ar trebui să le folosiți.
Ce este un tip de postare personalizat?
Tipurile de postări personalizate sunt tipuri de conținut. WordPress vine cu mai multe tipuri de postări în mod implicit. Postările și paginile sunt cele mai cunoscute, dar mai sunt și altele:
- Postări
- Pagini
- Atasamente
- Meniuri de navigare
- Revizuirile
- CSS personalizat
- Seturi de modificări
Majoritatea utilizatorilor folosesc primele cinci tipuri, dar există și alte tipuri. De fapt, probabil că folosiți unele dintre ele fără să știți că sunt tipuri de postări personalizate.
Cel mai bun exemplu de tip de postare personalizat sunt produsele WooCommerce. Când activați WooCommerce pentru prima dată, pluginul creează un tip de postare personalizat numit „Produse”. Odată ce începeți să creați produse, acestea sunt publicate ca tip de postare de produs, prezentând toate îmbunătățirile oferite de WooCommerce.
Chiar dacă aceste tipuri de postări nu sunt numite personalizate, puteți să vă creați tipurile de postări în același mod în care o face WooCommerce și să le dați numele dorit. De exemplu, evenimente, listări, programe, lecții, portofolii și profiluri pot fi nume de tipuri de postări care vor fi utile pentru anumite site-uri web.
Una peste alta, tipurile de postări personalizate sunt un nou tip de postare pe care utilizatorii îl pot crea în funcție de cerințe specifice pentru a-și personaliza site-ul web.
De ce și când ar trebui să utilizați un tip de postare personalizat?
Tipurile de postări personalizate (CPT) pot fi foarte diferite în funcție de modul în care sunt construite, așa că le puteți folosi pentru a obține tot felul de soluții.
Puteți folosi tipuri de postări personalizate atunci când:
- Veți posta în mod regulat un anumit tip de informații pe care nu le puteți publica folosind tipul de postări implicit
- Trebuie să diferențiezi un anumit tip de postări de cele standard
- Trebuie să schimbați comportamentul unui tip de postări
- Doriți să personalizați caracteristicile postării, procesul de publicare și elementele sau să le aplicați o caracteristică specială
Ca regulă generală, ar trebui să utilizați CPT pe un site WordPress atunci când aveți nevoie de diferite tipuri de postări cu caracteristicile sau comportamentul personalizat.
Tipurile de postări personalizate sunt diferite de tipurile de postări implicite, așa că necesită un tratament special fără a fi nevoie să suprascrie caracteristicile tipului de postare implicite. Acesta este un mare avantaj atunci când aveți nevoie de diferite tipuri de postări, deoarece puteți crea un tip de post personalizat de la zero, care să corespundă exact cerințelor dumneavoastră.
Acum că înțelegem mai bine ce sunt și când să le folosim, să vedem cum să creăm tipuri de postări personalizate.
Cum să creați un tip de postare personalizat WordPress în mod programatic
În această secțiune, vă vom arăta cum să creați un tip de postare personalizat în WordPress cu un exemplu. Înainte de a începe, asigurați-vă că faceți o copie de rezervă a site-ului și creați o temă copil dacă nu aveți deja una.
În tabloul de bord accesați Aspect > Editor de teme , deschideți fișierul functions.php al temei copil din coloana din dreapta și inserați următorul script. Va înregistra un tip de postare personalizat numit filme .
funcția QuadLayers_custom_post_type() { // Setați etichete UI pentru Tipul de postare personalizat $labels = array( 'name' => _x( 'Filme', 'Nume general tip post', 'storefront' ), 'singular_name' => _x( 'Film', 'Tip de postare Nume singular', 'storefront' ), 'menu_name' => __( 'Filme', 'storefront' ), 'parent_item_colon' => __( 'Filmul părinte', 'vitrina' ), 'all_items' => __( 'Toate filmele', 'storefront' ), 'view_item' => __( 'Vizualizare film', 'storefront' ), 'add_new_item' => __( 'Adăugaţi un film nou', 'storefront' ), 'add_new' => __( 'Adăugați nou', 'storefront' ), 'edit_item' => __( 'Edit film', 'storefront' ), 'update_item' => __( 'Actualizează filmul', 'storefront' ), 'search_items' => __( 'Căutare film', 'storefront' ), 'not_found' => __( 'Negăsit', 'vitrina' ), 'not_found_in_trash' => __( 'Nu a fost găsit în Coș de gunoi', 'viforă' ), ); // Setați alte opțiuni pentru Tipul de postare personalizat $args = matrice( 'label' => __( 'filme', 'storefront' ), 'description' => __( 'Știri și recenzii despre filme', 'vitrina' ), 'labels' => $labels, 'supports' => array( 'titlu', 'editor', 'extras', 'autor', 'miniatură', 'comentarii', 'reviziuni', 'câmpuri personalizate', ), 'taxonomii' => array( 'genuri' ), 'ierarhic' => fals, „public” => adevărat, 'show_ui' => adevărat, 'show_in_menu' => adevărat, 'show_in_nav_menus' => adevărat, 'show_in_admin_bar' => adevărat, 'menu_position' => 5, 'can_export' => adevărat, 'has_archive' => adevărat, 'exclude_from_search' => fals, 'publicly_queryable' => adevărat, 'capability_type' => 'postare', 'show_in_rest' => adevărat, ); // Înregistrarea tipului de postare personalizat register_post_type( 'filme', $args ); } add_action('init', 'QuadLayers_custom_post_type', 0);
După lipirea codului, va apărea o nouă filă numită Filme pe tabloul de bord WordPress.
Dacă îl deschideți, veți vedea că editorul de postări este același cu tipurile de postări implicite, deoarece am setat aceleași argumente pentru ecranul editorului de postări. Deci, de unde știm că este un editor personalizat de tip de postare? Deoarece pe adresa URL și titlul paginii, puteți vedea tipul de postare Filme.
Acum că ați văzut rezultatul final, să analizăm codul, astfel încât să puteți înțelege mai bine ce face fiecare secțiune.
Explicația codului
Tocmai am văzut cum să creăm un tip de postare personalizat WordPress în mod programatic. Dar asta e doar jumătate din ceea ce trebuie să știi. Dacă doriți să vă creați propriile tipuri de postări, trebuie să personalizați codul. Și pentru asta, trebuie să înțelegeți ce face fiecare parte a fragmentului.
Folosim cârligul wp_init()
pentru a ne asigura că funcția noastră rulează o singură dată: când inițiază WordPress. În funcția noastră QuadLayers_custom_post_type()
, există trei părți.
1) Etichete
Acestea sunt un set de șiruri de caractere pe care tema le va folosi pe diferite pagini de administrare și interfață. Acesta este setat pe o singură matrice:
$labels = array(
'name' => _x( 'Movies', 'Post Type General Name', 'storefront' ),
);
2) Opțiuni
Acestea sunt câteva opțiuni predefinite care definesc comportamentul și alte caracteristici ale tipului nostru de postare personalizat ( filme ).
Fiecare opțiune este o instrucțiune specifică care va defini modul în care va acționa tipul nostru personalizat de postare. Cele mai relevante sunt:
- „suporta”: definește ce componente vor fi utilizate în editorul de postări
- „taxonomii”: puteți aplica una sau mai multe categorii existente sau categorii personalizate tuturor CPT-urilor înregistrate în funcția curentă
- ' 'ierarhic' : postările nu pot avea conținut părinte și acest lucru va diferenția CPT-ul de pagini. Setați acest lucru la adevărat dacă doriți să publicați o pagină personalizată în loc de un tip de postare personalizat
- „ show_in_admin_bar”: afișează fila CPT pe tabloul de bord WordPress
Pentru lista completă a tuturor argumentelor și descrierea acestora, consultați această documentație.
3) Înregistrarea tipului de post personalizat
Funcția WordPress register_post_type() va înregistra în sfârșit noul nostru tip de postare personalizat și îl va seta astfel încât să fie gata de utilizare.
Acum înțelegeți mai bine codul, puteți începe să publicați tipurile de postări personalizate. Dar în afară de publicarea lor, veți dori să afișați undeva CPT-ul dvs. Să vedem cum să facem asta.
Cum să afișați tipuri de postări personalizate în WordPress
Până acum, am văzut cum să creăm un tip de postare personalizat în mod programatic în WordPress. După ce îl publicați, trebuie să decideți unde îl veți afișa.
Există mai multe moduri în care puteți imprima un CPT pe front-end. Puteți afișa o listă completă de tipuri specifice de postări personalizate pe o altă postare, pagină, bară laterală sau orice alt loc dorit.
În următorul exemplu de script, vom crea un shortcode personalizat pentru a afișa toate tipurile de postări personalizate pe care le-am creat folosind funcția anterioară pe o pagină nouă.
Următorul script va crea un cod scurt numit Filme , care va tipări toate filmele pe care le adăugăm la CPT-ul nostru pe orice pagină în care adăugăm codul scurt.
add_shortcode('filme', 'QuadLayers_display_cpt_shortcode'); funcția QuadLayers_display_cpt_shortcode(){ $args = array( 'post_type' => 'filme', 'posts_per_page' => 10 ); $the_query = new WP_Query($args); if ($the_query->have_posts()): while ( $the_query->have_posts() ): $the_query->the_post(); $c= the_title( sprintf( '<h2 class="entry-title">', esc_url( get_the_title() ) ), '</h2>'). „<div class="entry-content">'. continutul(). '</div>'; sfârşitul timpului; wp_reset_postdata(); altceva: $c = 'Ne pare rău, nicio postare nu corespunde criteriilor dvs.'; endif; returnează $c; }
Deci, dacă plasați shortcode-ul pe o pagină:
Veți vedea rezultatul:
Concluzie
În rezumat, am văzut că, în mod implicit, WordPress include unele tipuri de postări, dar puteți adăuga tipuri de postări personalizate în funcție de cerințele dvs. pentru a vă personaliza site-ul.
În acest ghid, v-am arătat cum puteți crea un tip de postare personalizat WordPress în mod programatic. Am analizat fragmentul și am descris fiecare secțiune, astfel încât să îl puteți personaliza și să îl utilizați pe site-ul dvs. În plus, am văzut cum să creați un shortcode personalizat care vă permite să afișați tipurile de postări personalizate oriunde pe site-ul dvs.
Ați încercat să creați tipuri de postări personalizate pe site-ul dvs.? Spune-ne experiența ta în secțiunea de comentarii.
Pentru a personaliza alte zone ale site-ului dvs., consultați următoarele tutoriale:
- Cum să adăugați câmpuri personalizate de încărcare la WooCommerce
- Cum să adăugați câmpuri personalizate la finalizarea comenzii
- Ghid pentru editarea câmpurilor de plată WooCommerce