Dacă desfășurați orice tip de afacere online, este o idee bună să obțineți opiniile clienților despre ceea ce au crezut despre serviciile pe care le-ați furnizat.
În primul rând, acest lucru vă poate aduce beneficii oferindu-vă feedback cu privire la modul în care vă puteți îmbunătăți aspectele afacerii dvs., dar, mai presus de toate, vă poate oferi mărturii excelente, ceea ce vă poate ajuta să convingeți potențialii clienți să vă utilizeze serviciile.
Cel mai simplu mod de a adăuga această funcție la site-ul dvs. ar fi să îl includeți ca plugin. Am creat toate fișierele necesare și am inclus un link de descărcare pentru pluginul Testimonials client de mai sus.
Tipurile de postări personalizate sunt excelente pentru separarea conținutului dvs. în funcție de nevoi diferite. Mai ales dacă conținutul personalizat nu are nevoie de toate clopotele și fluierele unui post direct.
Pentru acest tutorial, vă voi arăta cum puteți crea rapid un tip de post particularizat pentru mărturiile dvs. care necesită doar editorul de text și trei casete meta personalizate.
add_action ('init', 'testimonials_post_type'); funcția testimonials_post_type () $ labels = array ('name' => 'Testimonials', 'singular_name' => 'Testimonial', 'add_new' => 'Add New', 'add_new_item' edit_item '=>' Edit Testimonial ',' new_item '=>' Testimonial New ',' view_item '=>' View Testimonial ',' search_items '=>' Testimonials Search ',' not_found '=> 'not_found_in_trash' => 'Niciun comentariu în coșul de gunoi', 'parent_item_colon' => ",); register_post_type ('testimonials', array (' true = 'true', 'exclude_from_search' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => > false, 'menu_position' => 10, 'suport' => array ('editor'), 'register_meta_box_cb' => 'testimonials_meta_boxes', // funcția callback pentru metaboxuri personalizate)
Acum, dacă a fost creat un tip de post particularizat pentru mărturiile dvs. și ați stabilit un apel invers pentru metaboxurile personalizate, trebuie să configurați modul în care acele metaboxuri vor fi afișate. Deci, până la urmă trebuie să utilizați add_meta_box ()
funcția de a face exact acest lucru.
funcția testimonials_meta_boxes () add_meta_box ('testimonials_form', 'Testimonial Details', 'testimonials_form', 'testimonials', 'normal', 'high'); funcția testimonials_form () $ post_id = get_the_ID (); $ testimonial_data = get_post_meta ($ post_id, '_testimonial', true); $ client_name = (gol ($ testimonial_data ['source_name']))? ': $ testimonial_data [' client_name ']; $ source = ]; $ link = (gol ($ testimonial_data ['link']))? ': $ testimonial_data [' link ']; wp_nonce_field (' testimonials ',' testimonials '
Există trei câmpuri pe care trebuie să le includeți atunci când configurați datele pentru mărturia dvs.: numele clientului, afacerea acestuia și un link către site-ul său. Uneori, este posibil să nu aveți toate cele trei, dar cel mai mic număr de informații pe care ar trebui să le solicitați este numele clientului.
Bacsis: Ori de câte ori adăugați un metabox, asigurați-vă că utilizați un nonce pentru a securiza formularul. Trebuie. Citiți mai multe despre nonces în codul WordPress.
Salvarea Meta personalizată
Din moment ce ați adăugat un metabox personalizat, va trebui să vă asigurați că toate datele sunt validate și salvate. Trebuie să intri în
save_post
și setați o funcție de apel invers.add_action ('save_post', 'testimonials_save_post'); funcția testimonials_save_post ($ post_id) dacă (definită ('DOING_AUTOSAVE') && DOING_AUTOSAVE) retur; dacă ! empty ($ _POST ['testimonials']) &&! wp_verify_nonce ($ _POST ['testimonials'], 'testimonials')) retur; dacă ! empty $ _POST ['post_type']) && 'pagină' == $ _POST ['post_type']) if (! altceva if (! current_user_can ('edit_post', $ post_id)) retur; dacă ! wp_is_post_revision ($ post_id) && 'testimonials' == get_post_type ($ post_id)) remove_action ('save_post', 'testimonials_save_post'); wp_update_post (array ('ID' => $ post_id, 'post_title' => 'Testimonial -'. $ post_id)); add_action ('save_post', 'testimonials_save_post'); if ($ _POST ['testimonial'])) $ testimonial_data ['client_name'] = (gol ($ _POST ['testimonial'] ['client_name' ['source'] = '(' '' '' '' ') ']); $ testimonial_data ['link'] = (gol ($ _POST ['testimonial'] ['link'])) ": esc_url ($ _POST ['testimonial']); update_post_meta ($ post_id, _testimonial ', $ testimonial_data); altceva delete_post_meta ($ post_id,' _testimonial ');
Personalizarea afișării listei
După ce ați creat prima dvs. mărturie, veți vedea că aceasta apare în vizualizarea de listă a tipului dvs. de post particularizat; cu toate acestea, nu veți vedea niciunul dintre meta date personalizate.
Aceasta este o rezolvare ușoară: trebuie doar să adăugați încă câteva funcții pentru a personaliza coloanele din lista de vizualizare, astfel încât să apară toate informațiile pe care doriți să le vedeți.
add_filter ('manage_edit-testimonials_columns', 'testimonials_edit_columns'); funcția testimonials_edit_columns ($ coloane) $ columns = array ('cb' => '',' title '=>' Titlu ',' testimonial '=>' Testimonial ',' testimonial-client-name '=>' Numele clientului ',' testimonial-source '=>' Business / Site ' 'testimonial-link' => 'Link', 'autor' => 'Postat de', 'data' => 'Data'); returnează coloane $; add_action ('manage_posts_custom_column', 'testimonials_columns', 10, 2); funcția testimonials_columns ($ column, $ post_id) $ testimonial_data = get_post_meta ($ post_id, '_testimonial', true); comutator (coloană $) mărturie de caz: the_excerpt (); pauză; cazul "mărturie-client-nume": if (! empty ($ testimonial_data ['client_name'])) echo $ testimonial_data ['client_name']; pauză; cazul "testimonial-source": if (! empty ($ testimonial_data ['sursa'])) echo $ testimonial_data ['sursa']; pauză; cazul "testimonial-link": if (! empty ($ testimonial_data ['link'])) echo $ testimonial_data ['link']; pauză;Acest lucru este destul de mult tot ce aveți nevoie pentru a seta marturii în admin-ul WordPress. Dar cum ar fi să le arătăm pe front? Să ne uităm la câteva moduri diferite de a vă afișa mărturiile.
Afișați mărturiile
Dacă doriți să afișați o mărturie undeva într-una din șabloanele de pagină ale temei dvs., va trebui să creați o funcție pentru a face acest lucru. Iată o listă rapidă care vă va permite să afișați mărturiile clienților. Puteți utiliza parametrii pentru a selecta o anumită mărturie utilizând un ID sau chiar pentru a afișa o întâmplare prin trecerea unei valori 'orderby'.
/ ** * Afișează o mărturie * * @param int $ post_per_page Numărul de mărturii pe care doriți să le afișați * @param string $ orderby Ordinea setând https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters * @param array $ testimonial_id ID-ul sau ID-urile mărcilor, separat prin virgulă * * @return string Codificat HTML * / funcția get_testimonial ($ posts_per_page = 1, $ commandby = 'none', $ testimonial_id = null) $ args = array ('posts_per_page' => (int) $ posts_per_page, 'post_type' => 'mărturii', 'orderby' => $ orderby, 'no_found_rows' => true;); dacă ($ testimonial_id) $ args ['post__in'] = array ($ testimonial_id); $ query = noua valoare WP_Query ($ args); $ testimonials = "; dacă $ ($ query-> have_posts ()) în timp ce ($ query-> have_posts ()): $ query-> the_post (); $ post_id = get_the_ID (); $ testimonial_data = '$ nume_client' = $ (nume_client) ': $ nume_client [nume_client]; $ source = (goală ($ testimonial_data ['link'])) ":" $ testimonial_data ['source']; $ link = ['legătură']; $ cite = ($ link)? ''. $ client_name. $ sursă. '': $ client_name. sursă $; $ testimonials. = '„; endwhile; wp_reset_postdata (); returnează mărturiile $;Iată CSS-ul pe care îl folosesc pentru a modela mărturiile.
.mărturie padding-left: 60px; poziție: relativă; z-index: 0; font-size: 16px; aside.testimonial .testimonial .quote poziție: absolut; stânga: 0; top: -25px; font-size: 300px; font-familie: Georgia, serif; culoare: # f2f2f2; indicele z: -1; linia-înălțime: 1; . text tematic font-style: italic; .testimonial-client-name text-align: right; font-size: 14px; .testimonial-client-name citează font-style: normal;
Testimonials Shortcode
S-ar putea să doriți, de asemenea, să afișați mărturii în postarea sau conținutul paginii. Asta nu-i o problema. Tot ce trebuie să faceți este să introduceți în API-ul WordPress Shortcode.
add_shortcode ("mărturie", "testimonial_shortcode"); / ** * Codul scurt pentru afișarea mărturiilor * * [mărturie posts_per_page = "1" orderby = "none"] * / funcția testimonial_shortcode ($ atts) extract (shortcode_atts (array (posts_per_page ' => 'none', 'testimonial_id' => ',), $ atts)); returnați get_testimonial ($ posts_per_page, $ orderby, $ testimonial_id);
Testimonials Widget
Widgeturile sunt minunate. Sunt ușor de folosit și pot adăuga atât de multă funcționalitate site-ului dvs. Deci, să punem la dispoziție un simplu widget pentru mărturii, astfel încât să puteți afișa mărturiile clientului dvs. în oricare dintre zonele widgetizate ale temelor dvs..
/ ** * Testimonials Widget * / clasa Testimonial_Widget extinde WP_Widget funcția publică __construct () $ widget_ops = array ('classname' => 'testimonial_widget', 'description' => 'Afișați tipul postării mărturiilor'); părinte :: __ construct ('testimonial_widget', 'Testimonials', $ widget_ops); widget de funcții publice ($ args, $ instance) extract ($ args); $ title = 'apply_filters' ('widget_title', 'empty' ($ instance ['title']) ": $ instance ['title'], $ instance, $ this-> id_base) $ posts_per_page = ($ instance ['testtimonial_id']); $ testtimonial_id = (null == $ instanță ['testimonial_id'])? ': strip_tags ($ instance [' testtimonial_id ']); echo $ before_widget; dacă (! gol ($ title)) echo $ before_title. titlul $. $ After_title; echo get_testimonial ($ posts_per_page, $ orderby, $ testimonial_id); echo $ after_widget; actualizarea funcției publice ($ new_instance, $ old_instance) $ instance = $ old_instance; $ instanță ['title'] = strip_tags ($ new_instance ['title']); $ instanță ['posts_per_page'] = (int) $ new_instance ['posts_per_page']; $ instanță ['orderby'] = strip_tags ($ new_instance ['orderby']); $ instanță ['testimonial_id'] = (null == $ new_instance ['testimonial_id'])? ': strip_tags ($ new_instance [' testimonial_id ']) wp_parse_args ((array) $ instanță, array ('title' => ',' posts_per_page '=>' 1 ',' orderby '=>' none ',' testimonial_id '=> null)); $ title = strip_tags ($ instanță ['titlu']); $ posts_per_page = (int) $ instanță ['posts_per_page']; $ orderby = strip_tags ($ instanță ['orderby']); $ testimonial_id = (null == $ instanță ['testimonial_id'])? ': strip_tags ($ instance [' testimonial_id ']);?>"tip =" text "valoare =""/>
Testimonials Page Archive Template
Întrucât mărturiile necesită meta personalizată, nu vă puteți baza pe șablonul de pagină arhivat implicit pentru a le afișa corect. Pentru a configura o pagină de arhivă personalizată, trebuie să creați un fișier numit Arhiva-testimonials.php și adăugați-l în dosarul principal al temei.
Marturii
> “ max_num_pages):?>
Concluzie
Sperăm că nu vă veți simți prea copleșiți de cantitatea de cod de mai sus. Probabil că nu trebuie să le folosiți de tot, deoarece într-adevăr depinde de nevoile dvs. S-ar putea să aveți nevoie doar de codul scurt sau doar de șablonul de arhivare. În orice caz, trecerea prin acest tutorial ar trebui să vă pregătească pentru multe situații pe care le-ați putea întâlni atunci când adăugați mărturii client la site-ul dvs..
Dacă aveți comentarii sau feedback despre ceva ce ați citit mai sus, vă rugăm să discutați mai jos.