Si vous exploitez n'importe quel type d'entreprise en ligne, il est judicieux de connaître l'opinion de vos clients sur ce qu'ils pensent des services que vous avez fournis..
Tout d'abord, cela peut vous être bénéfique en vous donnant des informations sur la manière dont vous pouvez améliorer certains aspects de votre entreprise, mais surtout en vous offrant d'excellents témoignages, qui peuvent aider à convaincre les clients potentiels d'utiliser vos services..
Le moyen le plus simple d’ajouter cette fonctionnalité à votre site serait de l’inclure en tant que plugin. J'ai rassemblé tous les fichiers nécessaires et inclus un lien de téléchargement pour le plug-in Client Testimonials ci-dessus..
Les types de messages personnalisés sont parfaits pour séparer votre contenu en fonction de différents besoins. Surtout si votre contenu personnalisé n'a pas besoin de toutes les fonctionnalités d'un message simple.
Pour ce tutoriel, je vais vous montrer comment créer rapidement un type de message personnalisé pour vos témoignages ne nécessitant que l'éditeur de texte et trois méta-boîtes personnalisées..
add_action ('init', 'testimonials_post_type'); function testimonials_post_type () $ labels = array ('name' => 'Témoignages', 'singular_name' => 'Témoignage', 'add_new' => 'Ajouter nouveau', 'add_new_item' => 'Ajouter un nouveau témoignage', ' edit_item '=>' Edit Testimonial ',' new_item '=>' Nouveau témoignage ',' view_item '=>' Afficher le témoignage ',' search_items '=>' Rechercher les témoignages ',' not_found '=>' Aucun témoignage trouvé ', 'not_found_in_trash' => 'Aucun témoignage dans la corbeille', 'parent_item_colon' => ",); register_post_type ('testimonials', array ('labels' => $ labels, 'public' => true, 'public_queryable' => true, 'show_ui' => true, 'exclude_from_search' => true, 'query_var' => true, 'rewrite' => true, 'capacite_type' => 'post', 'has_archive' => true, 'hiérarchique' = > false, 'menu_position' => 10, 'supports' => array ('editor'), 'register_meta_box_cb' => 'testimonials_meta_boxes', // fonction de rappel pour les métaboxes personnalisés));
Maintenant qu'un type de publication personnalisé pour vos témoignages a été créé et que vous avez établi un rappel pour les métaboxes personnalisés, vous devez configurer le mode d'affichage de ces métaboxes. Alors la prochaine fois que vous devez utiliser le add_meta_box ()
fonctionner pour faire juste cela.
function testimonials_meta_boxes () add_meta_box ('testimonials_form', 'Détails du témoignage', 'testimonials_form', 'testimonials', 'normal', 'high'); function testimonials_form () $ post_id = get_the_ID (); $ testimonial_data = get_post_meta ($ post_id, '_testimonial', true); $ client_name = (vide ($ testimonial_data ['client_name']))? ": $ testimonial_data ['client_name']; $ source = (vide ($ testimonial_data ['source']))?": $ testimonial_data ['source' ]; $ link = (vide ($ testimonial_data ['link']))? ": $ testimonial_data ['link']; wp_nonce_field ('testimonials', 'testimonials');?>
Lors de la configuration des données de votre témoignage, vous devez inclure trois champs: le nom du client, son entreprise et un lien vers son site. Parfois, il se peut que vous n'ayez pas les trois, mais le moins d'informations dont vous auriez besoin est le nom du client..
Pointe: Chaque fois que vous ajoutez une metabox, veillez à utiliser un nonce pour sécuriser le formulaire. C'est un impératif. En savoir plus sur les nonces dans le codex WordPress.
Enregistrer la méta personnalisée
Puisque vous avez ajouté une métabox personnalisée, vous devez vous assurer que toutes les données sont validées et enregistrées. Vous devez vous accrocher au
save_post
action et mettre en place une fonction de rappel.add_action ('save_post', 'testimonials_save_post'); function testimonials_save_post ($ post_id) if (défini ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; 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)) return; else if (! current_user_can ('edit_post', $ post_id)) return; 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' => 'Témoignage -'. $ 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 '] [' nom_client ']); $ testimonial_data [' source '] = (vide ($ _POST [' testimonial '] [' source ']))? ": sanitize_text_field ($ _POST [' testimonial '] [' source ']); $ testimonial_data ['link'] = (vide ($ _POST ['testimonial'] ['link']))? ": esc_url ($ _POST ['testimonial'] ['link']); update_post_meta ($ post_id, ' _testimonial ', $ testimonial_data); else delete_post_meta ($ post_id,' _testimonial ');
Personnaliser la vue liste
Une fois que vous avez créé votre premier témoignage, vous le verrez apparaître dans la liste de votre type de publication personnalisée. cependant, vous ne verrez aucune des métadonnées personnalisées.
C'est une solution facile: il vous suffit d'ajouter quelques fonctions supplémentaires pour personnaliser les colonnes de la liste afin que toutes les informations que vous souhaitez voir apparaissent..
add_filter ('manage_edit-testimonials_columns', 'testimonials_edit_columns'); fonction testimonials_edit_columns ($ columns) $ columns = array ('cb' => '',' title '=>' Title ',' testimonial '=>' Témoignage ',' testimonial-client-name '=>' Nom du client ',' testimonial-source '=>' Entreprise / Site ', 'testimonial-link' => 'Lien', 'author' => 'Publié par', 'date' => 'Date'); retourne $ colonnes; add_action ('manage_posts_custom_column', 'testimonials_columns', 10, 2); fonction testimonials_columns ($ column, $ post_id) $ testimonial_data = get_post_meta ($ post_id, '_testimonial', true); switch ($ column) case 'testimonial': the_excerpt (); Pause; case 'testimonial-client-name': if (! empty ($ testimonial_data ['client_name'])) echo $ testimonial_data ['client_name']; Pause; case 'testimonial-source': if (! empty ($ testimonial_data ['source']))) echo $ testimonial_data ['source']; Pause; case 'testimonial-link': if (! empty ($ testimonial_data ['link'])) echo $ testimonial_data ['link']; Pause;C'est à peu près tout ce dont vous avez besoin pour configurer des témoignages dans l'administrateur WordPress. Mais qu'en est-il d'afficher sur le front-end? Examinons différentes manières d'afficher vos témoignages..
Afficher les témoignages
Si vous souhaitez afficher un témoignage quelque part dans l'un des modèles de page de votre thème, vous devez créer une fonction à cet effet. En voici un rapide qui vous permettra d’afficher des témoignages de clients. Vous pouvez utiliser les paramètres pour sélectionner un témoignage spécifique à l'aide d'un identifiant, ou même en afficher un aléatoire en passant une valeur 'orderby'.
/ ** * Afficher un témoignage * * @param int $ post_per_page Le nombre de témoignages que vous souhaitez afficher * @param string $ orderby L'ordre en définissant https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters * @param array $ testimonial_id Le ou les identifiants du ou des témoignage (s), séparés par des virgules * * @return string HTML formaté * / function get_testimonial ($ posts_per_page = 1, $ orderby = 'none', $ testimonial_id = null) $ args = array ('posts_per_page' => (int) $ posts_per_page, 'post_type' => 'témoignages', 'orderby' => $ orderby, 'no_found_rows' => true,); 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 = (vide ($ testimonial_data ['client_name']))? ": $ testimonial_data ['client_name']; $ source = (vide ($ testimonial_data ['source']))? ": '-'. $ testimonial_data ['source']; $ link = (vide ($ testimonial_data ['lien']))?": $ testimonial_data ['lien']; $ cite = ($ link)? '' $ nom_client. $ source. '': $ nom_client. $ source; $ testimonials. = ''; en attendant; wp_reset_postdata (); return $ testimonials;Voici le CSS que j'utilise pour styler les témoignages.
.témoignage padding-left: 60px; position: relative; z-index: 0; taille de police: 16px; apart.testimonial .testimonial .quote position: absolute; gauche: 0; en haut: -25px; taille de police: 300px; famille de polices: Georgia, serif; couleur: # f2f2f2; z-index: -1; hauteur de ligne: 1; .testimonial-text font-style: italic; .testimonial-client-name text-align: right; taille de police: 14px; .testimonial-client-name cite font-style: normal;
Témoignages Shortcode
Vous pouvez également vouloir afficher des témoignages dans le contenu de votre message ou de votre page. Ce n'est pas un problème. Tout ce que vous avez à faire est de vous connecter à l'API WordPress Shortcode.
add_shortcode ('testimonial', 'testimonial_shortcode'); / ** * Code court pour afficher les témoignages * * [testimonial posts_per_page = "1" orderby = "none"] * / function testimonial_shortcode ($ atts) extract (shortcode_atts (array ('posts_per_page' => '1', 'orderby') => 'none', 'testimonial_id' => ",), $ atts)); return get_testimonial ($ posts_per_page, $ orderby, $ testimonial_id);
Témoignages Widget
Les widgets sont super. Ils sont faciles à utiliser et peuvent ajouter beaucoup de fonctionnalités à votre site. Nous allons donc configurer un widget de témoignages simple pour que vous puissiez afficher les témoignages de vos clients dans les zones de votre thème, sous forme de widgets..
/ ** * Testimonials Widget * / class Testimonial_Widget étend WP_Widget fonction publique __construct () $ widget_ops = array ('classname' => 'testimonial_widget', 'description' => 'Afficher le type de message testimonial'); parent :: __ construct ('testimonial_widget', 'Témoignages', $ widget_ops); widget de fonction publique ($ args, $ instance) extract ($ args); $ title = apply_filters ('widget_title', vide ($ instance ['title'])? "?: $ instance ['title'], $ instance, $ this-> id_base); $ posts_per_page = (int) $ instance [' posts_per_page ']; $ orderby = strip_tags ($ instance [' orderby ']); $ testimonial_id = (null == $ instance [' testimonial_id '])? ": strip_tags ($ instance [' testimonial_id ']); echo $ before_widget; if (! empty ($ title)) echo $ before_title. $ titre. $ after_title; echo get_testimonial ($ posts_per_page, $ orderby, $ testimonial_id); echo $ after_widget; mise à jour de la fonction publique ($ 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; formulaire de fonction publique ($ instance) $ instance = wp_parse_args ((array) $ instance, array ('title' => ", 'posts_per_page' => '1', 'orderby' => 'none', 'testimonial_id' => null)); $ title = strip_tags ($ instance ['title']); $ posts_per_page = (int) $ instance ['posts_per_page']; $ orderby = strip_tags ($ instance ['orderby']); $ testimonial_id = (null == $ instance ['testimonial_id'])? ": strip_tags ($ instance ['testimonial_id']);?>
Témoignages Modèle de page d'archives
Étant donné que les témoignages nécessitent des méta personnalisées, vous ne pouvez pas vous fier au modèle de page d'archive par défaut pour les afficher correctement. Pour créer une page d’archive personnalisée, vous devez créer un fichier appelé archive-testimonials.php et l'ajouter au dossier principal de votre thème.
Témoignages
> “ max_num_pages):?>
Conclusion
Espérons que vous ne vous sentirez pas trop submergé par la quantité de code ci-dessus. Vous n’êtes peut-être pas obligé de tout utiliser car tout dépend de vos besoins. Vous pourriez avoir besoin uniquement du shortcode ou du modèle d'archive. Quoi qu’il en soit, ce didacticiel devrait vous préparer à de nombreuses situations que vous pourriez rencontrer lors de l’ajout de témoignages de clients à votre site..
Si vous avez des commentaires ou des remarques sur tout ce que vous avez lu ci-dessus, n'hésitez pas à en discuter ci-dessous.