Als u online een type bedrijf heeft, is het een goed idee om de mening van uw klanten te krijgen over wat zij dachten over de services die u heeft geleverd.
Allereerst kan dit u helpen door u feedback te geven over hoe u aspecten van uw bedrijf kunt verbeteren, maar vooral, het kan u geweldige getuigenissen geven, die u kunnen helpen potentiële klanten over te halen uw diensten te gebruiken.
De eenvoudigste manier om deze functionaliteit aan uw site toe te voegen, is om deze als een plug-in toe te voegen. Ik heb alle benodigde bestanden samengesteld en een downloadlink voor de bovenstaande plug-in Clientreacties toegevoegd.
Aangepaste berichttypes zijn ideaal voor het scheiden van uw inhoud op basis van verschillende behoeften. Vooral als je aangepaste inhoud niet alle toeters en bellen van een direct bericht nodig heeft.
Voor deze zelfstudie laat ik je zien hoe je snel een aangepast berichttype kunt maken voor je testimonials waarvoor alleen de teksteditor en drie aangepaste metaboxen nodig zijn.
add_action ('init', 'testimonials_post_type'); function testimonials_post_type () $ labels = array ('name' => 'Testimonials', 'singular_name' => 'Testimonial', 'add_new' => 'Nieuw toevoegen', 'add_new_item' => 'Nieuw testimonial toevoegen', ' edit_item '=>' Edit Testimonial ',' new_item '=>' Nieuwe testimonial ',' view_item '=>' Bekijk testimonial ',' search_items '=>' Getuigenissen zoeken ',' not_found '=>' Geen testimonials gevonden ', 'not_found_in_trash' => 'Geen testimonials in de prullenbak', 'parent_item_colon' => ",); register_post_type ('testimonials', array ('labels' => $ labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'exclude_from_search' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' = > false, 'menu_position' => 10, 'ondersteunt' => array ('editor'), 'register_meta_box_cb' => 'testimonials_meta_boxes', // Callback-functie voor aangepaste metaboxen));
Nu een Aangepast berichttype voor uw testimonials is gemaakt en u een callback voor de aangepaste metaboxen hebt ingesteld, moet u instellen hoe die metaboxen worden weergegeven. Dus de volgende moet je gebruiken add_meta_box ()
functie om precies dat te doen.
function testimonials_meta_boxes () add_meta_box ('testimonials_form', 'Testimonial Details', 'testimonials_form', 'testimonials', 'normal', 'high'); function testimonials_form () $ post_id = get_the_ID (); $ testimonial_data = get_post_meta ($ post_id, '_testimonial', true); $ client_name = (empty ($ testimonial_data ['client_name']))? ": $ testimonial_data ['client_name']; $ source = (empty ($ testimonial_data ['source']))?": $ testimonial_data ['source' ]; $ link = (empty ($ testimonial_data ['link']))? ": $ testimonial_data ['link']; wp_nonce_field ('testimonials', 'testimonials');?>
Er zijn drie velden die u moet opnemen bij het instellen van de gegevens voor uw testimonial: de naam van de klant, zijn bedrijf en een link naar zijn site. Soms heb je misschien niet alle drie, maar de minste hoeveelheid informatie die je nodig hebt is de naam van de klant.
Tip: Telkens wanneer u een metabox toevoegt, moet u een nonce gebruiken om het formulier te beveiligen. Het is een must. Lees meer over nonces in de WordPress codex.
De aangepaste meta opslaan
Aangezien u een aangepaste metabox heeft toegevoegd, moet u ervoor zorgen dat alle gegevens worden gevalideerd en opgeslagen. Je moet aansluiten op de
save_post
actie en stel een callback-functie in.add_action ('save_post', 'testimonials_save_post'); function testimonials_save_post ($ post_id) if (defined ('DOING_AUTOSAVE') && DOING_AUTOSAVE) retour; if (! empty ($ _POST ['testimonials']) &&! wp_verify_nonce ($ _POST ['testimonials'], 'testimonials')) return; if (! empty ($ _POST ['post_type']) && 'page' == $ _POST ['post_type']) if (! current_user_can ('edit_page', $ post_id)) terug; else if (! current_user_can ('edit_post', $ post_id)) terug; if (! 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 (! empty ($ _POST ['testimonial'])) $ testimonial_data ['client_name'] = (empty ($ _POST ['testimonial'] ['client_name'])? ": sanitize_text_field ($ _POST [' testimonial '] [' client_name ']); $ testimonial_data [' source '] = (empty ($ _POST [' testimonial '] [' source ']))? ": sanitize_text_field ($ _POST [' testimonial '] [' source ']); $ testimonial_data ['link'] = (empty ($ _POST ['testimonial'] ['link']))? ": esc_url ($ _POST ['testimonial'] ['link']); update_post_meta ($ post_id, ' _testimonial ', $ testimonial_data); else delete_post_meta ($ post_id,' _testimonial ');
De lijstweergave aanpassen
Nadat u uw eerste testimonial heeft gemaakt, ziet u deze verschijnen in de lijstweergave van uw aangepaste berichttype; u zult echter geen aangepaste metadata zien.
Dat is een eenvoudige oplossing: u hoeft alleen nog een paar extra functies toe te voegen om de kolommen van de lijstweergave aan te passen, zodat alle informatie die u wilt zien, wordt weergegeven.
add_filter ('manage_edit-testimonials_columns', 'testimonials_edit_columns'); function testimonials_edit_columns ($ columns) $ columns = array ('cb' => '',' title '=>' Titel ',' testimonial '=>' Testimonial ',' testimonial-client-name '=>' Client \ 's Name', 'testimonial-source' => 'Business / Site', 'testimonial-link' => 'Link', 'author' => 'Gepost door', 'datum' => 'Datum'); return $ kolommen; add_action ('manage_posts_custom_column', 'testimonials_columns', 10, 2); function testimonials_columns ($ column, $ post_id) $ testimonial_data = get_post_meta ($ post_id, '_testimonial', true); switch ($ column) case 'testimonial': the_excerpt (); breken; case 'testimonial-client-name': if (! empty ($ testimonial_data ['client_name'])) echo $ testimonial_data ['client_name']; breken; case 'testimonial-source': if (! empty ($ testimonial_data ['source'])) echo $ testimonial_data ['source']; breken; case 'testimonial-link': if (! empty ($ testimonial_data ['link'])) echo $ testimonial_data ['link']; breken;Dat is vrijwel alles wat je nodig hebt om testimonials op te zetten in de WordPress-beheerder. Maar hoe zit het met het weergeven aan de voorkant? Laten we een paar verschillende manieren bekijken om uw testimonials te tonen.
Getuigenissen weergeven
Als u ergens een getuigschrift wilt weergeven in een van de paginasjablonen van uw thema, moet u daarvoor een functie maken. Hier is een snel overzicht waarmee u testimonials van klanten kunt weergeven. U kunt de parameters gebruiken om één specifieke testimonial te selecteren met behulp van een ID, of zelfs een willekeurige weergeven door een 'orderby'-waarde door te geven.
/ ** * Geef een testimonial weer * * @param int $ post_per_page Het aantal testimonials dat u wilt weergeven * @param string $ orderby De bestelling door https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters * in te stellen @param array $ testimonial_id De ID of ID's van de testimonial (s), gescheiden door komma's * * @return string Geformatteerde HTML * / functie get_testimonial ($ posts_per_page = 1, $ orderby = 'none', $ testimonial_id = null) $ args = array ('posts_per_page' => (int) $ posts_per_page, 'post_type' => 'testimonials', 'orderby' => $ orderby, 'no_found_rows' => waar,); if ($ testimonial_id) $ args ['post__in'] = array ($ testimonial_id); $ query = new WP_Query ($ args); $ testimonials = "; if ($ query-> have_posts ()) while ($ query-> have_posts ()): $ query-> the_post (); $ post_id = get_the_ID (); $ testimonial_data = get_post_meta ($ post_id, '_testimonial', true); $ client_name = (empty ($ testimonial_data ['client_name']))? ": $ testimonial_data ['client_name']; $ source = (empty ($ testimonial_data ['source']))? ':' - '. $ testimonial_data [' source ']; $ link = (empty ($ testimonial_data [' link ']))? ": $ testimonial_data ['link']; $ cite = ($ link)? ''. $ client_name. $ bron. '': $ client_name. $ Bron; $ testimonials. = ''; endwhile; wp_reset_postdata (); retourneer $ testimonials;Dit is de CSS die ik gebruik om de testimonials te stylen.
.testimonial padding-left: 60px; positie: relatief; z-index: 0; lettergrootte: 16px; opzij.testimonial .testimonial .quote position: absolute; links: 0; top: -25px; lettergrootte: 300 px; font-family: Georgia, serif; kleur: # f2f2f2; z-index: -1; regelhoogte: 1; .testimonial-text font-style: italic; .testimonial-client-name text-align: right; lettergrootte: 14 px; .testimonial-client-name cite font-style: normaal;
Testimonials Shortcode
Mogelijk wilt u ook testimonials weergeven in uw bericht- of pagina-inhoud. Dat is geen probleem. Het enige wat u hoeft te doen is inhaken op de WordPress Shortcode API.
add_shortcode ('testimonial', 'testimonial_shortcode'); / ** * Korte code om testimonials weer te geven * * [testimonial posts_per_page = "1" orderby = "none"] * / function testimonial_shortcode ($ atts) extract (shortcode_atts (array ('posts_per_page' => '1', 'orderby' => 'geen', 'testimonial_id' => ",), $ atts)); retourneer get_testimonial ($ posts_per_page, $ orderby, $ testimonial_id);
Getuigenissen Widget
Widgets zijn geweldig. Ze zijn gemakkelijk te gebruiken en kunnen zoveel functionaliteit toevoegen aan uw site. Laten we daarom een eenvoudige testimonials-widget instellen, zodat u de testimonials van uw klant kunt weergeven in elk widgetgebied van uw thema.
/ ** * Testimonials Widget * / class Testimonial_Widget breidt WP_Widget uit public function __construct () $ widget_ops = array ('classname' => 'testimonial_widget', 'description' => 'Toon type antwoordbericht'); parent :: __ construct ('testimonial_widget', 'Testimonials', $ widget_ops); openbare functie widget ($ args, $ instantie) extract ($ args); $ title = apply_filters ('widget_title', empty ($ instance ['title'])? ": $ instance ['title'], $ instance, $ this-> id_base); $ posts_per_page = (int) $ instance [' posts_per_page ']; $ orderby = strip_tags ($ instantie [' orderby ']); $ testimonial_id = (null == $ instantie [' testimonial_id '])? ": strip_tags ($ instantie [' testimonial_id ']); echo $ before_widget; if (! empty ($ title)) echo $ before_title. $ titel. $ After_title; echo get_testimonial ($ posts_per_page, $ orderby, $ testimonial_id); echo $ after_widget; openbare functie-update ($ new_instance, $ old_instance) $ instance = $ old_instance; $ instance ['title'] = strip_tags ($ new_instance ['title']); $ instance ['posts_per_page'] = (int) $ new_instance ['posts_per_page']; $ instance ['orderby'] = strip_tags ($ new_instance ['orderby']); $ instance ['testimonial_id'] = (null == $ new_instance ['testimonial_id'])? ": strip_tags ($ new_instance ['testimonial_id']); return $ instance; public function form ($ instance) $ instance = wp_parse_args ((array) $ instantie, array ('title' => ", 'posts_per_page' => '1', 'orderby' => 'none', 'testimonial_id' => null)); $ title = strip_tags ($ instantie ['titel']); $ posts_per_page = (int) $ instance ['posts_per_page']; $ orderby = strip_tags ($ instance ['orderby']); $ testimonial_id = (null == $ instance ['testimonial_id'])? ": strip_tags ($ instance ['testimonial_id']);?>
Testimonials Archive Page Template
Aangezien testimonials aangepaste meta vereisen, kunt u niet vertrouwen op de standaardarchiveringspaginasjabloon om ze correct weer te geven. Om een aangepaste archiefpagina in te stellen, moet u een bestand maken met de naam archief-testimonials.php en voeg het toe aan de hoofdmap van uw thema.
getuigenissen
> “ max_num_pages):?>
Conclusie
Hopelijk voel je je niet al te overdonderd door de hoeveelheid code hierboven. U hoeft het misschien niet allemaal te gebruiken, omdat het echt afhangt van wat uw behoeften zullen zijn. Je hebt misschien alleen de shortcode of alleen de archiefsjabloon nodig. Hoe dan ook, deze procedure doorlopen moet u voorbereiden op vele situaties die u kunt tegenkomen bij het toevoegen van klantreacties aan uw site.
Als u opmerkingen of feedback heeft over iets dat u hierboven hebt gelezen, aarzel dan niet om het hieronder te bespreken.