Construire un plugin de carrousel WordPress: Partie 3
Les plats clés
- Pour rendre les flèches du carrousel fonctionnel, un fichier JavaScript est créé et lié à WordPress à l'aide de la fonction wp_enqueue_script (), qui est placé dans la condition de fonction display_carel () pour s'assurer qu'elle n'est incluse que lorsque le carrousel est affiché.
- Le bloc UL du carrousel est déplacé horizontalement pour afficher différents éléments en ajustant sa propriété CSS à gauche marge; Une marge gauche négative aligne le côté gauche de l'élément suivant avec le côté gauche du bloc de carrousel.
- Une fonction, carousel_show_another_link (), est créée pour afficher un autre élément basé sur le paramètre de direction (-1 pour l'élément précédent, 1 pour l'élément suivant); Il calcule l'index du nouvel élément à afficher et vérifie s'il existe avant de déplacer le bloc UL.
- Deux fonctions, carousel_previous_link () et carousel_next_link (), sont créées et attachées aux événements de flèche respectifs, et appelez la fonction carrousel_show_another_link () avec le paramètre approprié; Un bogue est évité en initialisant la propriété de marge-gauche du bloc UL à 0 lorsque le document est prêt.
Sans style, le carrousel WordPress que nous avons construit dans la première partie de ce tutoriel n'est qu'une liste d'articles, mais il est au moins utile, dans le sens où ils sont tous visibles. Le CSS que nous avons ajouté dans la deuxième partie de ce tutoriel a amélioré l'affichage du carrousel, mais maintenant le problème est que seul le premier élément est montré à l'utilisateur et qu'il n'y a aucun moyen d'afficher le reste des éléments.
Nous avons ajouté des flèches à notre carrousel, pour permettre à l'utilisateur de naviguer entre les différents éléments, et il est maintenant temps de les rendre utilisables, avec un peu de javascript.
Dans la continuation de ce tutoriel, nous apprendrons à inclure correctement notre script, puis nous écrirons un script qui lancera une fonction qui animera les éléments lorsque l'utilisateur frappe une flèche.
liant un fichier javascript
Ici, nous utiliserons JavaScript pour rendre nos flèches utiles. Quant à la pièce CSS, créez un nouveau fichier. Je l'ai appelé Carousel.js et l'ai placé dans la racine du dossier du plugin.
Nous devons indiquer à WordPress que nous utilisons le fichier JavaScript. Pour ce faire, nous utiliserons la fonction wp_enqueue_script ().
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
Les deux premiers paramètres sont les mêmes que pour wp_enqueue_style (). Ensuite, nous trouvons un tableau. Ce tableau répertorie les dépendances, les scripts nécessaires à notre script pour fonctionner. J'ai choisi d'utiliser jQuery pour contourner les problèmes de compatibilité du navigateur, donc j'indique WordPress que je veux l'utiliser: comme nous l'avons vu dans notre article sur les scripts correctement dans WordPress, `` jQuery '' est une valeur reconnue dans WordPress.
Le quatrième paramètre est le numéro de version du script. Ce n'est pas très important ici (voir l'article précédemment lié pour plus d'informations), mais nous devions utiliser le dernier paramètre et le définir sur True afin que notre script soit inclus dans le pied de page.
L'avantage de choisir le pied de page au lieu de l'en-tête est que nous pouvons utiliser wp_enqueue_script () où nous voulons. Nous n'avons pas la contrainte de l'utiliser avant wp_head () comme avec wp_enqueue_style (). Nous ne pourrons alors inclure notre script uniquement si cela est nécessaire: seulement si nous affichons le carrousel.
Le meilleur endroit pour mettre WP_enqueue_script () est donc dans l'état de notre fonction display_carel (). Nous afficherons le carrousel uniquement s'il y a des éléments à afficher, nous inclurons donc notre script avec la même condition.
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
Maintenant, nous sommes prêts à modifier notre fichier javascript.
que voulons-nous faire?
Nous encapsulons d'abord tout notre code dans une fonction. Pour éviter les collisions avec d'autres bibliothèques, WordPress désactive l'utilisation de $ dans jQuery. Nous pouvons l'activer à nouveau avec cette fonction.
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>
Il existe de nombreuses façons de fabriquer un carrousel, même sans modifier notre code HTML. Ici, je vous suggère de déplacer le bloc UL. Il contient tous nos éléments d'affilée afin que nous puissions le déplacer horizontalement pour afficher l'un ou l'autre élément en définissant sa position. Voir le schéma ci-dessous, déjà vu dans la partie précédente de ce tutoriel, pour voir ce que nous voulons faire.

Pour le déplacer, nous jouerons avec sa propriété CSS à gauche. Par défaut, il est défini sur 0 et a donc «afficher» le premier élément. Le premier article est assez grand pour remplir le carrousel et le deuxième élément, qui est à côté, ne peut pas être vu grâce à la propriété Overflow.
Pour afficher le deuxième élément, nous devons déplacer le bloc UL vers la gauche, afin d'aligner le côté gauche du deuxième élément avec le côté gauche du bloc de carrousel. Cela peut être réalisé avec une marge gauche négative. Pour tester la valeur que nous devons utiliser, nous pouvons expérimenter avec un code CSS (que nous supprimons juste après, car nous n'en avons pas besoin).
<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>
Cette ligne simple mérite une explication. Si vous le testez, vous devriez voir que le premier élément n'est pas affiché, nous voyons à la place le deuxième élément. Vous pouvez tester une autre valeur pour mieux comprendre ce qui s'est passé. Avec -50px, nous déplaçons le bloc UL 50 pixels vers la gauche par exemple. Avec les valeurs que je vous ai montrées dans le CSS ci-dessus, car le carrousel a une largeur de 900 pixels, je peux afficher le deuxième élément d'une valeur de -900px.
Cependant, nous pouvons utiliser des pourcentages à la place. L'avantage est que ce pourcentage est relatif au conteneur. Ici, «100%» est égal à «900 pixels», donc, si nous donnons une valeur de -100%, nous masquons le premier élément et affichons la seconde. L'utilisation de pourcentages vous permet de modifier la largeur du conteneur sans modifier les valeurs de la propriété de marge-gauche.
La fonction pour afficher un autre élément
Tout d'abord, nous rédigerons la fonction qui affichera un autre élément. Celui-ci acceptera un paramètre, la direction. Si nous souhaitons afficher l'élément précédent, cette direction doit être définie sur -1 et, si nous voulons afficher l'élément suivant, il doit être défini sur 1.
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
où allons-nous?
Pour déterminer la valeur à attribuer à la marge-gauche, nous devons savoir où nous en sommes. Il existe un certain nombre de façons possibles d'y parvenir, et j'en ai choisi une qui utilise uniquement la valeur actuelle de la propriété de marge-gauche.
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>
La première ligne récupère le bloc UL. Comme nous le réutiliserons plus tard, le stocker dans une variable est une bonne idée. La deuxième ligne peut sembler un peu bizarre. L'objectif est de stocker un entier représentant l'article affiché actuel. Le premier élément sera représenté par 0, le second par 1, etc.
Pour y parvenir, nous obtenons la valeur actuelle de la propriété de marge-gauche. Le problème est que cette valeur est quelque chose comme -200% et que nous voulons un nombre: supprimer le «%», nous utilisons la fonction parseInt () qui transforme la valeur en un entier (par exemple '-200%' devient -200). Comme nous voulons un entier positif, nous ajoutons un signe «moins» (par exemple pour obtenir 200 à partir de -200), et nous divisons par 100 pour obtenir la valeur que nous voulons (par exemple 2, pas 200).
Vous vous demandez peut-être pourquoi nous n'avons pas utilisé ul.css ('marge-gauche') pour obtenir la valeur de la propriété margin-gauche. En fait, .css () est une méthode jQuery et, dans notre contexte, semble être une meilleure idée. Le problème est que cette méthode ne nous donnera pas de pourcentage. En utilisant les mêmes valeurs que ci-dessus, si l'élément actuel est le troisième, la propriété de marge-gauche est définie sur -200% tandis que la méthode .css () retournera -1800px. Pour calculer l'élément actuel en utilisant cette valeur en pixels, nous devons ensuite utiliser la largeur du grand conteneur, et je préfère utiliser uniquement le bloc UL.
Maintenant, nous pouvons calculer l'index de l'élément à afficher, grâce à la direction donnée dans l'argument de notre fonction.
<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>
Le nouvel élément existe-t-il?
Avant d'afficher le nouvel élément, nous devons tester s'il existe. Si new_link est inférieur ou égal à -1, ou est supérieur ou égal au nombre total d'éléments, il n'existe pas et nous ne pouvons pas l'afficher, donc déplacer le bloc UL n'est pas une bonne idée. Notez que ce test peut sembler redondant car les flèches ne sont pas affichées lorsque nous ne pouvons pas aller plus loin, mais s'assurer que quelque chose peut réellement être fait est toujours une bonne idée.
<span><span>#carousel ul</span> { </span> <span>margin-left: -100%; </span><span>}</span>
Nous obtenons d'abord le nombre total d'éléments, qui est le nombre de balises Li dans notre liste. Ce nombre est utile pour la condition que nous avons décrite ci-dessus car nous voulons un entier positif qui ne doit pas être supérieur ou égal au nombre d'éléments (n'oubliez pas que nous commençons par 0 et non 1).
Affichage du nouvel élément
Enfin, le mouvement du bloc peut être réalisé avec une seule ligne. Nous devons calculer la nouvelle valeur de la marge-gauche. Pour ce faire, réfléchissons-y. Pour chaque article «passé», nous avons une largeur de 100% à voyager. De cette façon, la nouvelle valeur de la marge-gauche est 100 fois la position de la nouvelle élément que nous venons de calculer, avec un signe moins pour aller à gauche.
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
J'ai choisi ici pour utiliser une animation jQuery, mais vous êtes libre de créer le vôtre, ou même de modifier les paramètres de celui-ci.
certains alias pour une utilisation plus pratique
Nous allons maintenant créer les fonctions qui seront appelées chaque fois que l'utilisateur clique sur une flèche. Ces fonctions ne nécessitent pas une énorme quantité de code, car la seule chose qu'ils font est d'appeler la fonction carrousel_show_another_link () avec le bon paramètre. Vous trouverez ci-dessous le code de la fonction qui est appelé lorsque nous cliquons une flèche «précédente».
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>
Remarque le retour false; Pour éviter le comportement par défaut de nos flèches (n'oubliez pas que ce sont des liens). De cette façon, l'URL ne changera pas lorsque l'utilisateur clique sur une flèche.
La fonction qui affiche l'élément «suivant» est exactement la même, mais avec 1 comme paramètre pour carousel_show_another_link (). J'ai choisi de l'appeler carousel_next_link ().
attacher les événements
Enfin, nous devons rendre ces fonctions utiles, en attachant les bons événements aux bons éléments. Nous le ferons dans une nouvelle fonction, appelée lorsque nous pouvons être sûrs que nos éléments sont créés: lorsque le document est chargé.
<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>
Nous voulons attacher la fonction carousel_previous_link () à chaque flèche «précédente». Avec l'arbre Dom de notre carrousel, nous pouvons les récupérer facilement, de la même manière que nous les avons récupérés lorsque nous voulions les styliser dans le CSS.
<span><span>#carousel ul</span> { </span> <span>margin-left: -100%; </span><span>}</span>
Ensuite, nous pouvons attacher la fonction carousel_next_link () aux flèches droites (#carel ul li a.carel-next) de la même manière.
Vous pouvez tester ce code mais un bogue doit apparaître: la première fois que la fonction CARROULSE_SHOW_ANOOTHOTER_LINK () est appelée, la marge de propriété CSS pour notre bloc UL n'existe pas, donc une erreur se produira lorsque nous essayons de récupérer sa valeur.
Pour empêcher ce bogue, nous pouvons initialiser la valeur de cette propriété. Toujours dans la fonction appelée lorsque le document est prêt (avant de joindre les événements par exemple), ajoutez la ligne suivante.
<span>function carousel_show_another_link(direction) { </span><span>}</span>
Cela définit la propriété de marge-gauche de notre bloc UL à 0 par défaut. Cette propriété existera maintenant, sans déplacer le bloc.
Vous pouvez maintenant cliquer sur les flèches, le carrousel est terminé et cela fonctionne!
en conclusion
Dans ce tutoriel, nous avons traversé la construction d'un plugin de carrousel à l'aide de l'API WordPress Links Manager. C'était un bon exemple d'utilisation de cette API, mais c'était aussi un bon moyen de voir comment combiner PHP, HTML, CSS et JavaScript dans un plugin WordPress.
En terminant, je dirais qu'il existe de nombreuses façons de construire un carrousel, même si nous gardons le code HTML que nous avons généré: nous pourrions choisir différents styles ou différentes façons d'écrire le script. En fait, le script que nous avons écrit ici est juste un exemple et nous pourrions en écrire un totalement différent avec le même résultat.
Vous pouvez décider par vous-même si vous aimez le code que nous avons utilisé ici. Sinon, n'hésitez pas à le modifier!
Même si vous avez aimé ce que nous avons fait ici, vous pouvez toujours améliorer le résultat. Par exemple, les visiteurs doivent frapper les flèches pour voir d'autres éléments: vous pouvez essayer d'animer automatiquement le carrousel avec la fonction setTimeout ().
Si vous souhaitez voir le code fini ou essayez le plugin par vous-même, il est disponible en téléchargement ici.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les blogs sont la plate-forme idéale pour que les gens expriment leurs opinions, opinions et opinions en ligne. De nombreux débutants sont impatients de créer leur propre site Web, mais hésitent à s'inquiéter des obstacles techniques ou des problèmes de coûts. Cependant, comme la plate-forme continue d'évoluer pour répondre aux capacités et aux besoins des débutants, il commence maintenant à devenir plus facile que jamais. Cet article vous guidera étape par étape comment créer un blog WordPress, de la sélection de thème à l'utilisation des plugins pour améliorer la sécurité et les performances, vous aidant facilement à créer votre propre site Web. Choisissez un sujet et une direction de blog Avant d'acheter un nom de domaine ou d'enregistrer un hôte, il est préférable d'identifier les sujets que vous prévoyez de couvrir. Les sites Web personnels peuvent tourner autour des voyages, de la cuisine, des critiques de produits, de la musique ou de tout passe-temps qui suscite vos intérêts. Se concentrer sur les domaines qui vous intéressent vraiment peuvent encourager l'écriture continue

WordPress est facile pour les débutants de commencer. 1. Après se connecter à l'arrière-plan, l'interface utilisateur est intuitive et le tableau de bord simple fournit tous les liens de fonction nécessaires. 2. Les opérations de base incluent la création et l'édition de contenu. L'éditeur WYSIWYG simplifie la création de contenu. 3. Les débutants peuvent étendre les fonctions du site Web via des plug-ins et des thèmes, et la courbe d'apprentissage existe mais peut être maîtrisée par la pratique.

Voulez-vous savoir comment afficher les catégories d'enfants sur la page des archives de la catégorie parent? Lorsque vous personnalisez une page d'archive de classification, vous devrez peut-être le faire pour le rendre plus utile à vos visiteurs. Dans cet article, nous vous montrerons comment afficher facilement les catégories d'enfants sur la page des archives de la catégorie parent. Pourquoi les sous-catégories apparaissent-elles sur la page des archives de la catégorie des parents? En affichant toutes les catégories d'enfants sur la page des archives de la catégorie parent, vous pouvez les rendre moins génériques et plus utiles aux visiteurs. Par exemple, si vous exécutez un blog WordPress sur les livres et que vous avez une taxonomie appelée "thème", vous pouvez ajouter une sous-taxonomie telle que "roman", "non-fiction" afin que vos lecteurs puissent

Récemment, nous vous avons montré comment créer une expérience personnalisée pour les utilisateurs en permettant aux utilisateurs d'enregistrer leurs publications préférées dans une bibliothèque personnalisée. Vous pouvez porter des résultats personnalisés à un autre niveau en utilisant leurs noms à certains endroits (c'est-à-dire des écrans de bienvenue). Heureusement, WordPress facilite l'obtention d'informations sur les utilisateurs connectés. Dans cet article, nous vous montrerons comment récupérer des informations liées à l'utilisateur actuellement connecté. Nous utiliserons le get_currentUserInfo (); fonction. Cela peut être utilisé n'importe où dans le thème (en-tête, pied de page, barre latérale, modèle de page, etc.). Pour que cela fonctionne, l'utilisateur doit être connecté. Nous devons donc utiliser

Il existe quatre façons d'ajuster la liste des articles WordPress: utilisez des options de thème, utilisez des plugins (tels que l'ordre des types de publication, la liste des publiques WP, des trucs boxy), utilisez du code (ajoutez des paramètres dans le fichier functions.php), ou modifiez directement la base de données WordPress.

Dans le passé, nous avons partagé comment utiliser le plugin PostExpirator pour expirer les publications dans WordPress. Eh bien, lors de la création du site Web de la liste d'activités, nous avons trouvé ce plugin très utile. Nous pouvons facilement supprimer les listes d'activités expirées. Deuxièmement, grâce à ce plugin, il est également très facile de trier les publications par date d'expiration du post. Dans cet article, nous vous montrerons comment trier les publications par date d'expiration post-expiration dans WordPress. Code mis à jour pour refléter les modifications du plugin pour modifier le nom du champ personnalisé. Merci Tajim de nous avoir fait savoir dans les commentaires. Dans notre projet spécifique, nous utilisons des événements comme types de publication personnalisés. Maintenant

L'un de nos utilisateurs a demandé à d'autres sites Web comment afficher le nombre de requêtes et de temps de chargement dans le pied de page. Vous voyez souvent cela dans le pied de page de votre site Web, et il peut afficher quelque chose comme: "64 requêtes en 1,248 secondes". Dans cet article, nous vous montrerons comment afficher le nombre de requêtes et de temps de chargement de page dans WordPress. Collez simplement le code suivant partout dans le fichier de thème (par exemple Footer.php). requêtes

Peut apprendre WordPress dans les trois jours. 1. Master les connaissances de base, telles que les thèmes, les plug-ins, etc. 2. Comprenez les fonctions principales, y compris les principes d'installation et de travail. 3. Apprenez l'utilisation de base et avancée à travers des exemples. 4. Comprendre les techniques de débogage et les suggestions d'optimisation des performances.
