Comment créer un carrousel "Recent Post" en utilisant Owl Carousel
Publié: 2016-05-19Comme la plupart d'entre vous le savent, WordPress est livré avec un widget "Messages récents" qui extrait les titres de vos messages les plus récents dans une barre latérale et les relie au message complet. Le problème avec cela est que le widget Articles récents est très limitatif. Et si vous avez besoin de quelque chose d'un peu plus élégant et avec un peu plus de fonctionnalité ? Par exemple, que se passe-t-il si vous souhaitez extraire l'image en vedette et un extrait, et à partir d'un type de publication personnalisé ? Il existe certainement des plugins qui feront ces choses, comme Advanced Recent Posts ou Recent Posts Widget Extended. En fait, il existe de nombreux excellents plugins pour afficher des publications et certains vous permettront même de les personnaliser en fonction de votre thème.
Cependant, interroger les messages est en fait une chose assez facile à faire et suivre la voie du bricolage garantira presque toujours que vous obtenez exactement ce que vous voulez et que votre carrousel sera stylé pour correspondre parfaitement à votre thème.
Dans cet article, je vais vous montrer comment créer un carrousel "Messages récents" à l'aide de la populaire bibliothèque JavaScript Owl Carousel.
Commençons. Si vous examinez les exemples sur le site Owl Carousel, la première chose que vous remarquerez est que leurs exemples sont écrits pour un site HTML simple. Pour que Owl Carousel fonctionne dans WordPress, vous devrez faire les choses légèrement différemment.
Tout d'abord, vous devez télécharger les fichiers depuis le site Owl Carousel ou les forker depuis Github. Une fois que vous avez les fichiers localement, vous voudrez ajouter le fichier CSS principal au répertoire /css/ de votre thème. Ce fichier est owl.carousel.min.css. Il y a un autre fichier CSS pour un thème et c'est owl.theme.default.min.css . Ce n'est pas un fichier requis, par conséquent, je ne vais pas l'utiliser dans ce tutoriel.
Une fois téléchargé sur votre thème, le chemin d'accès au fichier devrait ressembler à ceci :
/wp-content/themes/your-theme/css/owl.carousel.min.css .
/wp-content/themes/your-theme/css/owl.carousel.min.css
Vous devez également inclure les fichiers JS
Si votre thème enfant n'a pas encore de dossier /js/ , allez-y et créez-en un maintenant. Ensuite, ajoutez le owl.carousel.min.js au répertoire /js/ de votre thème afin qu'il ressemble à ceci : /wp-content/themes/your-theme/js/owl.carousel.min.js .
Ensuite, vous devez ajouter du jQuery qui initialise et contrôle votre carrousel
Ce code configurera vos besoins spécifiques du carrousel. Si vous ne disposez pas déjà d'un fichier JS qui contrôle d'autres configurations de script, créez un fichier settings.js et placez-le dans le même répertoire /js/ que ci-dessus. Cela devrait ressembler à : /wp-content/themes/your-theme/js/settings.js .
Ensuite, vous allez ajouter le code suivant à ce même fichier JavaScript et enregistrer. Ce code est ce qui appelle le carrousel et lui indique le nombre d'éléments à utiliser, s'il faut ou non boucler, quel type de navigation utiliser et comment répondre aux différentes tailles d'appareils.
(function($) { "use strict"; $(document).ready(function() { $('#blog .owl-carousel').owlCarousel({ loop:true, margin:10, responsiveClass:true, dots: false, nav: true, navText: ['<i class="fa fa-arrow-left fa-2x"></i>','<i class="fa fa-arrow-right fa-2x"></i>'], //Note, if you are not using Font Awesome in your theme, you can change this to Previous & Next responsive:{ 0:{ items:1, //nav:true }, 767:{ items:2, //nav:false }, } }); }) })(jQuery);Vous devrez vous inscrire et mettre en file d'attente tous les nouveaux fichiers ajoutés. Si vous aviez déjà un
settings.jsoucustom.js, il devrait déjà être mis en file d'attente dans votre thème. Cependant, comme vous ajoutez au moins deux nouveaux fichiers (owl.carousel.min.cssetowl.carousel.min.js), vous devrez ouvrir lefunctions.phpde votre thème et les ajouter correctement à votre thème. Ça devrait ressembler a quelque chose comme ca:add_action( 'wp_enqueue_scripts', 'yourtheme_scripts'); function yourtheme_scripts(){ wp_enqueue_script('owl.carousel', get_template_directory_uri() . '/js/owl.carousel.min.js', array(), '1.0.0', true ); wp_enqueue_script('settings', get_template_directory_uri() . '/js/settings.js', array(), '1.0.0', true ); } function yourtheme_styles() { wp_register_style('owl-carousel', get_template_directory_uri() .'/css/owl.carousel.css', array(), null, 'all' ); wp_enqueue_style( 'owl-carousel' ); } add_action( 'wp_enqueue_scripts', 'yourtheme_styles' );Le HTML et le PHP qui afficheront le carrousel sur votre page
Cette section peut varier en fonction de la configuration de votre thème et de l'endroit où vous souhaitez placer le carrousel. Je vais utiliser un modèle personnalisé que j'ai créé à l'aide de Bootstrap. Votre première étape ici consiste à déterminer où vous voulez que le carrousel apparaisse. Si vous voulez qu'il soit sur votre page d'accueil, vous devriez chercher
home.phpoufrontpage.php. Le nom varie d'un thème à l'autre, alors assurez-vous de comprendre la structure de votre thème et de modifier le bon fichier. Une fois que vous savez quel fichier modifier, vous devez en faire une copie dans votre thème enfant et vous assurer qu'il réside dans la même structure de répertoires. Par exemple, si le fichier réside dans un répertoire appelétemplates, assurez-vous de créer un dossier appelétemplatesau même emplacement que votre thème parent.![]()
Une fois que vous êtes prêt à partir, vous pouvez ajouter les éléments suivants à l'emplacement approprié. Dans mon fichier, j'ai ajouté ceci au bas de mon
frontpage.phpafin qu'il s'affiche juste au-dessus du pied de page de mon site.<!-- ============ BLOG CAROUSEL START ============ --> <section id="blog"> <div class="container"> <div class="row"> <!-- this is the carousel’s header row --> <div class="col-sm-12 text-center"> <h5>Recent posts</h5> <h1>Blog</h1> </div> </div> <div class="row"> <!-- this row starts the carousel--> <div class="col-sm-12"> <div class="owl-carousel"> <!-- query the posts to be displayed --> <?php $loop = new WP_Query(array('post_type' => 'post', 'posts_per_page' => -1, 'orderby'=> 'ASC')); //Note, you can change the post_type to a CPT and set the number to pull and order to display them in here. ?> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <div class="recent-post"> <!-- I don’t have any unique css here, just needed to make sure every recent post gets wrapped as a block element. However, you may want to add your own css here... --> <?php <a href="<?php print get_permalink($post->ID) ?>"> <?php echo the_post_thumbnail(); ?></a> <h4><?php print get_the_title(); ?></h4> <?php print get_the_excerpt(); ?><br /> <p><a class="btn btn-default" href="<?php print get_permalink($post->ID) ?>">More</a></p> </div> <!-- End the Recent Post div --> <?php endwhile; ?> </div> <!-- End the Owl Carousel div --> </div> <!-- End the recent posts carousel row --> <div class="row"> <!-- start of new row for the link to the blog --> <div class="col-sm-12 text-center"> <a href="blog.html" class="btn btn-primary">Read All Posts</a> </div> </div> </div> <!-- End blog button row --> </section> <!-- ============ RECENT POSTS CAROUSEL END ============ -->Lorsque vous avez terminé, vous devriez avoir un carrousel qui affiche l'image, le titre, l'extrait de l'article et un bouton "Plus" qui vous relie à l'article de blog complet.
