Chargement dynamique des messages WordPress avec Ajax

Ajax est devenu populaire au cours des deux dernières années, pour de bonnes raisons. Ajax (JavaScript asynchrone et XML) est un moyen de
Remarque: avez du mal à configurer Ajax sur votre site, nous pouvons aider! Notre équipe de support peut aider à résoudre n’importe quel problème WordPress (pas seulement à propos de nos plugins!), Par conséquent, si avez des problèmes avec Ajax ou si souhaitez obtenir des conseils sur la façon damp;rsquoapporter des changements à CSS, veuillez nous contacter! Pourquoi Ajax est il utilisé? Lorsque WordPress charge la première page d’un article sur le site WordPress, il les demande à partir de la base de données et utilise une boucle pour les voir avec les balises que nous avons ajoutées. En plus de cela, des menus de navigation, des widgets, des graphiques et damp;rsquoautres médias, des fichiers Javascript, des feuilles de style et beaucoup damp;rsquoautres contenus sont chargés.
Namp;rsquooubliez pas que 72 requêtes sont faites chaque fois que la page est chargée. Comme le montre la figure ci dessus (à partir de lamp;rsquooutil de développement Chrome), il y a beaucoup de ressources chargées. Il y a de la place pour lamp;rsquooptimisation et certaines ressources (comme les scripts) seront mises en cache, mais même ici il y en a beaucoup. Lorsque la deuxième page de notre post est chargée, tout se répète. WordPress récupère les messages et les affiche avec nos balises. De plus, rechargez tous les éléments périphériques de la page. Dans de nombreux cas (mais pas tous), camp;rsquoest un gaspillage de largeur
Bande passante et mauvaise expérience utilisateur. Après tout, personne namp;rsquoaime attendre que la page soit chargée.
Pour commencer: créez un sous thème avant de modifier 2015, nous devrions créer un sous thème. Cela nous permet de continuer à mettre à jour le sujet sans perdre les changements que nous avons apportés. Vous pouvez lire tout sur la façon de faire cela dans le Guide comment créer des thèmes wordpress pour les enfants. Salut, Ajax! Commençons par un exemple simple qui montre comment Ajax fonctionne. Nous allons lier directement dans la barre de pagination au bas de la page, de sorte que lorsque cliquez sur le numéro de page, la page sera chargée dynamiquement en utilisant Ajax. Lorsque cliquez sur le lien de mise en page, nous envoyons une demande au serveur et en informons les résultats.
Nous ciblerons les liens numériques dans la section mise en page. Notre premier point de référence est la création de fichiers JavaScript et lamp;rsquoajout à travers les fonctions de fichiers. PHP pour notre sujet. Jamp;rsquoa i créé un dossier JS et un fichier de pagination Ajax. JS interne. Après avoir fait la même chose, ouvrez le fichier de fonctions et ajoutez le script à la fonction Theme _ enqueue Assets () existante: Load Explanation 5ca270c7c9ddd18e57b4 si êtes confus par la mise en file d’attente, lisez notre article sur l’ajout de scripts et de styles à WordPress de la bonne façon. En bref, nous disons à WordPress pourquoi nous voulons appeler le script (paramètre 1), où il se trouve (paramètre 2), quelles sont les conditions préalables (paramètre 3), le numéro de version (paramètre 4), et nous voulons le charger dans le pied de page (paramètre 5).
Notez que jamp;rsquoai utilisé get _ Template Directory Uri () lors de la mise en file des feuilles de style. Cette fonction pointe toujours vers le Répertoire du sujet principal. Dans la file damp;rsquoattente du script, jamp;rsquoai utilisé get _ Stylesheet Directory Uri (). Explorer
Ou pointez vers un répertoire de sous thèmes, samp;rsquoil est utilisé dans un sous thème. Comme nous chargeons le script dans le pied de page, pouvez coller lamp;rsquoalerte (script en file damp;rsquoattente) dans la pagination Ajax. JS et rechargez la page pour vérifier quamp;rsquoelle fonctionne. Dans lamp;rsquoaffirmative, le texte doit être correctement averti. Créer un événement la prochaine tâche consiste à créer un événement qui déclenchera un appel Ajax. Dans notre exemple, lamp;rsquoévénement est un clic sur un lien spécifique. Pour démarrer le lien, nous devons connaître la classe de lamp;rsquoélément et lamp;rsquoID qui lamp;rsquoentoure.
Source de mise en page à partir des outils de développement Chrome. voulez savoir ce que jamp;rsquoai fait, jamp;rsquoai appuyé sur Maj + Command + C sur le MAC (Maj + Ctrl + C sur Windows), puis jamp;rsquoai mis le curseur sur lamp;rsquoélément que je voulais vérifier et cliqué dessus. Cela me dit que notre lien de mise en page a la classe numéro de page, et le lien suivant a la classe suivante, qui est incluse dans lamp;rsquoélément NAV de la classe liens NAV. Ce qui namp;rsquoest pas montré ici est le lien précédent, qui a une classe Prev en plus de la classe de numéro de page normale.
Pour lamp;rsquoinstant, nous namp;rsquoavons pas à nous soucier de tout cela, nous nous concentrons uniquement sur les connexions dans le conteneur de mise en page. Nous pouvons créer un avertissement simple: instructions pour charger 5ca270c7c9ddd18e57b4 Notez que tout est contenu dans une fonction anonyme. Je suggère de faire de même. Regardez ce post et voyez pourquoi ça marche. Jamp;rsquoa i créé un événement de clic qui bloque lamp;rsquoactivation de la fonction par défaut (c. à D. le chargement de la page) et avertit le texte. Plutôt que de traiter les données du client (avertissements pour le texte par défaut), nous devrions obtenir des données dynamiques du côté serveur. On doit se préparer. Camp;rsquoest pourquoi: Nous devons fournir une URL pour les appels Ajax
Warrell. Nos fichiers JavaScript ne connaissent pas notre environnement, donc nous ne pouvons pas utiliser quelque chose comme get _ Stylesheet Directory Uri (). Cependant, nous pouvons utiliser des techniques de localisation pour passer des variables à JavaScript. Faisons ceci maintenant dans la fonction fichier:
Instructions pour charger 5ca270c7c9ddd18e57b4 lamp;rsquoajout de ce code à mon _ enqueue Assets () définit lamp;rsquoobjet ajaxpagination (paramètre 2). Lamp;rsquoobjet reçoit ses membres selon le tableau fourni comme troisième argument dans la fonction WP _ localize script (). En damp;rsquoautres termes, après avoir ajouté ce code, nous devrions être en mesure damp;rsquoutiliser Ajax pagination. La définition damp;rsquoURL Ajax gère les URL Ajax. Php que nous utilisons pour traiter les appels Ajax. Il fonctionne parce que la fonction de localisation renvoie la définition de cet objet avant de charger JavaScript. Ça ressemble à ça:
5ca270c7c9ddd18e57b4 retour à notre fichier javascript, nous avons maintenant tout ce dont nous avons besoin pour créer des appels Ajax. Comme pouvez le voir, chargez les instructions pour 5ca270c7c9ddd18e57b4, la fonction $. Ajax () est celui que nous utilisons ici. Les méthodes Post et get ont des fonctions spéciales, mais en raison de leur flexibilité, je préfère utiliser cette fonction. Vous pouvez lire tous les paramètres du document jquery. En utilisant le paramètre URL, nous passons lamp;rsquoURL du script auquel nous voulons envoyer les données. Il devrait samp;rsquoagir de gérer les fichiers Ajax. PHP est situé dans le répertoire WP admin. Nous lamp;rsquoavons défini ci dessus en utilisant WP _ localize script ().
Le type est défini à post. Nous pouvons également utiliser get, notre requête namp;rsquoest pas très sensible, mais je préfère envoyer des données à moins que lamp;rsquoutilisateur ait besoin damp;rsquoaccéder aux paramètres. Le paramètre donné est lamp;rsquoobjet contenant les données à transmettre. Dans notre exemple, jamp;rsquoaurai accès à $u post [amp;lsquoaction] avec une valeur de
Pour plus de clarté, jamp;rsquoai utilisé _ Ajax Paging. La fonction elle même peut contenir tout ce que voulez. Vous pouvez déconnecter les utilisateurs, obtenir leurs données, poster des messages, et plus encore. Que vouliez revenir au Javascript, devez répondre. Dans lamp;rsquoexemple ci dessus, jamp;rsquoai utilisé le titre du blog get _ bloginfo (), obtenu dynamiquement à partir de la fonction get bloginfo (). La dernière étape consiste à utiliser die (). nous ne le définissons pas, la fonction die définie dans admin Ajax. Php démarrera et gérera Ajax à la fin du fichier. Php per admin Ajax. Php 0 et tout autre contenu auquel répondez. essayez le code ci dessus, devriez maintenant voir le titre du site retourné. Aperçu Voici notre exemple de base! Avant de continuer à publier sur Ajax, résumons rapidement les étapes nécessaires pour effectuer lamp;rsquoOpération Ajax: namp;rsquoavez pas encore de fichier javascript, ajoutez un fichier javascript. Utilisez WP _ localize script () pour passer lamp;rsquoURL qui gère le fichier Ajax. Php crée un appel Ajax en javascript en ajoutant une fonction pour chiffrer la fonction avec le nom de crochet approprié, qui peut immédiatement utiliser Ajax pour renvoyer les données dans un billet de chargement Javascript pour des résultats intéressants! Jamp;rsquoai commencé ce projet en écrivant du code JavaScript. Il va sans dire que camp;rsquoest la version de base. Nous allons bientôt lamp;rsquoétendre avec une expérience utilisateur optimisée. Instructions pour charger 5ca270c7c9ddd18e57b4 Ceci est à peu près le même que notre exemple de base. La première chose que remarquerez est que jamp;rsquoa i ajouté un moyen de détecter quelle page lamp;rsquoutilisateur veut demander. Chaque lien a un élément de portée caché (pour le lecteur damp;rsquoécran). Je clone les éléments pour mamp;rsquoassurer quamp;rsquoils ne sont pas modifiés, que les travées sont supprimées et que les éléments restants sont analysés dans leur ensemble. Cela nous donne le numéro de page désiré. Jamp;rsquoai aussi besoin de connaître les paramètres de requête utilisés. Sur la page damp;rsquoaccueil, camp;rsquoest très simple
Paramètre pagé parce que nous utilisons la requête par défaut. nous commençons par une page damp;rsquoarchive, comme une archive de catégorie, nous devons également connaître le nom de la catégorie. Nous passerons les variables de requête en utilisant la méthode de localisation que nous avons apprise précédemment. Maintenant, nous allons utiliser Ajax pagination. Interrogez les variables même si elles ne sont pas définies. Enfin, si nous réussissons, nous supprimerons tous les éléments damp;rsquoarticle du conteneur principal, supprimerons les éléments de pagination et ajouterons la valeur de retour de lamp;rsquoappel Ajax au conteneur principal. Cette valeur de retour contiendra le message et le nouvel élément de navigation. Notez que jamp;rsquoai changé le nom du paramètre de réponse en HTML parce que camp;rsquoest plus logique. Enfin, nous utilisons un tableau localisé pour passer les paramètres de requête originaux. La fonction suivante doit être insérée dans la fonction my _ enqueue Assets () pour remplacer la locale précédente: instructions pour charger 5ca270c7c9ddd18e57b4 tout ce que nous avons à faire maintenant est la fonction my Ajax pagination () My Ajax pagination (). Quoi que cette fonctionnalité réponde, elle remplacera le contenu de notre page. Voici le dernier morceau de code, expliqué comme suit: instructions pour charger 5ca270c7c9ddd18e57b4 avec les paramètres passés nous avons construit une requête personnalisée. Il samp;rsquoagit principalement damp;rsquoobtenir les variables de requête que nous passons et de nous assurer que le numéro de page que nous passons écrase les paramètres de pagination. Ensuite, nous créons une nouvelle requête en utilisant le tableau $QUERY _ Vars final. Nous devons rendre la variable $global [amp;lsquoWP _ Queryamp;rsquo] égale à notre nouvel objet post. La raison pour laquelle nous devons le faire est que la fonction _ posts pagination () utilise cette variable globale. Ensuite, Notez que jamp;rsquoai ajouté une fonction au filtre Editor _ Max Image ze et que jamp;rsquoai supprimé plusieurs lignes. Camp;rsquoest lamp;rsquoaffaire de lamp;rsquoINSP.
Je croyais que camp;rsquoétait sorti. J’ai en fait créé une carte de suivi WordPress. Nous pouvons constater des progrès dans ce domaine! Le problème, camp;rsquoest que lorsque les images sont téléchargées dans le Post, elles ont toutes lamp;rsquoair bien. Cependant, si namp;rsquoutilisez pas ces filtres lorsque terminez le tutoriel cost, votre image sera plus étroite, avec seulement 660 pixels de largeur, au lieu de 825 pixels de largeur requis. La raison en est que la fonction qui charge lamp;rsquoimage appelle finalement une fonction appelée image _ Constraint size for editor (). Cette fonctionnalité garantit que lamp;rsquoimage dans lamp;rsquoéditeur post namp;rsquoest pas trop large. Pour déterminer la durée de cette réduction de taille, utilisez la fonction is _ admin (). Parce que notre code gère Ajax. PHP est techniquement admin Ajax. Php, WordPress Redimensionne les images en pensant à tort que nous les utilisons dans un éditeur. Heureusement, nous pouvons utiliser le filtre Editor _ Max Image ze pour déterminer la taille maximale de lamp;rsquoéditeur. Comme nous voulons garder tout comme nous lamp;rsquoavons fait, sauf lors damp;rsquoun appel Ajax, nous ajoutons un filtre avec une valeur personnalisée (array (825510)) et le retirons immédiatement pour nous assurer quamp;rsquoil ne cause aucun problème ailleurs. Lamp;rsquoétape suivante consiste à utiliser notre requête pour lister nos messages. Jamp;rsquoai copié beaucoup de choses à partir du fichier index. Php dans le thème parent. Samp;rsquoil namp;rsquoy a pas de message, nous utiliserons le modèle utilisé pour le traiter, sinon nous ferons défiler le message et utiliserons le modèle de visualisation du message. Enfin, nous utilisons le même format de mise en page que dans le fichier index. Considérations concernant les appels Ajax il est important de se rappeler que les appels Ajax sont toujours considérés comme étant initiés par un administrateur. Cela signifie que les ébauches, les plans et les messages personnels peuvent être retournés par cet appel. ne voulez pas que cela se produise, devez vérifier le comportement avec les paramètres appropriés, tels que lamp;rsquoétat post U. Migl
Do nonces), par exemple. WordPress dispose d’une protection intégrée dans certains cas lors de l’utilisation d’une approche générale, mais pour Ajax, devez généralement y réfléchir même. La relégation élégante est un autre aspect damp;rsquoAjax, bien que certaines choses deviennent moins importantes. En gros, pas de Javascript, pas damp;rsquoAjax. êtes fortement dépendant damp;rsquoAjax, nos applications ne seront pas disponibles pour les utilisateurs avec Ajax désactivé. Le JavaScript est devenu si courant que cela namp;rsquoa presque pas damp;rsquoimportance, mais peut se produire dans certains cas. Dans ce cas, devez assurer que le clic sur le lien réel fonctionne également. Lamp;rsquoexpérience utilisateur est souvent négligée. Les fonctionnalités Ajax sont vraiment intéressantes, mais un site Web qui fonctionne bien est plus intéressant. Les utilisateurs ont lamp;rsquohabitude de charger des pages lorsquamp;rsquoils cliquent sur un lien. Vous devez rendre tout très transparent et les utilisateurs doivent savoir ce qui se passe et pourquoi. Vous devriez utiliser Ajax pour améliorer votre travail au lieu damp;rsquoutiliser bling autant que possible. Comme pouvez le voir, la mise en œuvre damp;rsquoAjax nécessite un peu de préparation et de pratique, mais une fois quamp;rsquoil devient une seconde nature, le trouverez facile. Vous avez peut être pris un peu de temps pour le lire, et la première fois que lamp;rsquoavez lu, cela pourrait prendre plus de temps, mais jamp;rsquoai encodé lamp;rsquoéchantillon entier en environ 15 minutes. Ajax est l’une de ces technologies qui peut être difficile à mettre en œuvre, car il contient presque tous les langages de programmation utilisés dans des cadres tels que WordPress. Des conventions telles que le crochet et le positionnement doivent être respectées et les choses deviennent plus actives. Camp;rsquoest en forgeant quamp;rsquoon devient forgeron. Je te promets que si tu commences à utiliser Ajax, tu vas adorer. Avez mis en œuvre Ajax sur votre site Web? Quelles sont les autres utilisations d’ajax dans WordPress? Veuillez nous faire part de vos réflexions dans les commentaires ci dessous. Étiquettes: développeurs PHP

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ContactPress Supported By WordPress Plugins