SlideShare a Scribd company logo
1 of 49
Mieux Filtrer vos listes avec AJAX
***
Trucs et conseils pour mieux filtrer
vos listes WordPress via AJAX
Symetris libère votre potentiel web.
***
• Fondée à Montréal en 2004
• 9 spécialistes web à l’interne
• Développement de sites web qui vont
au-delà du marketing
• Maîtrise des CMS open-source
• Optimisation pour les appareils mobiles
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Qui sommes-nous?
Brad Muncs
Président Symetris
12 ans d’expérience
dans le web
Je mange du web
matin, midi et soir
Matthieu Gadrat
Développeur PHP et Lead
technologique
4 ans d’expérience avec
des CMS open-source
Amateur de ski
Ordre du jour
1. Les listes dans WordPress
2. Améliorer les filtres avec AJAX
3. Jetons un coup d’oeil au code
4. Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
- 1 -
Pourquoi WordPress est
un outil de choix
pour nos clients?
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
WordPress est plus qu’un blogue
• CMS complet
• Différent type de contenu (Post types)
• Catégorisation facile à utiliser
• WordPress est bon pour générer des listes
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Mr. Wilkins
Mr Wilkins est un distributeur de
nourriture pour chien
• Entreprise de taille moyenne
• Distribue à des détaillants (B2B)
• A besoin d'un catalogue en ligne
pour présenter ses produits
Prenons comme exemple d’entreprise :
• WordPress est
donc l'outil parfait
pour un catalogue
• Parfait pour
Mr Wilkins
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Dans WordPress, les listes sont déjà
présentes
• Liste de post
• Archives
• Catégories
• Tags
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Filtrage traditionnel dans WordPress
• Via les URL
• Par catégorie ou tag
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Bénéfices
• Ça fonctionne «Out of the box »
• Intuitif
• Pas de code
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Obstacles pour les utilisateurs
• Plus il y a de données, plus c’est laborieux
• Pas de «Custom fields»
• Pas de filtre complémentaire (Faceted search)
• Visuellement décevant
• La page doit être rafraichie à chaque nouvelle
requête
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
• Contiennent
beaucoup de
données
• Incluent des
spécifications
(Custom Fields)
• Doivent être efficaces
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Les listes de produit de Mr Wilkins:
Pour atteindre les
objectifs de
Mr. Wilkins, il faut
étendre les
fonctionnalités de filtre
de WordPress
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
- 2 -
Mieux filtrer les listes
de « POST » dans WordPress
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Plugin disponibles
• Faceted Search
• http://wordpress.org/plugins/faceted-search/
• Catégories / Tags
• wp-posts Filter
• http://wordpress.org/plugins/wp-posts-filter/
• Catégories / Tags
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Plugin disponibles
• ajax posts Filter
• http://wordpress.org/plugins/ajax-post-filter/
• Quicksand jQuery Post filter
• http://wordpress.org/plugins/quicksand-jquery-post-filter/
• Utilise jQuery Quicksand
• Mauvais pour gros volume de données
• ETC…
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Il est possible que l'une de ces solutions,
ou un autre plugin soient suffisants...
... Mr Wilkins, lui, n'est pas satisfait
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Nous allons donc lui créer une
solution personnalisée en utilisant
AJAX avec WordPress
(et WP_Query)
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
WP_Query est un objet à l’origine de la création des
listes dans WordPress
En fait, c’est le dénominateur commun de toute les requêtes.
• WP_Query est roi
• WP_Query est puissant
• WP_Query est flexible
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Qu'est-ce qu'AJAX?
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Définition
• Asynchronous JavaScript And XML
• Échange de donnée XML et Javascript de manière
asynchrone lors de la navigation d'un utilisateur sur
une même page web.
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Avantages
• Performant pour l'affichage d'un grand nombre de données
(en petites doses)
• Feedback constant à l'utilisateur
• Permet des effets Javascript « Fancy »
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Inconvénients
• Attention à l'accessibilité
• Si le JavaScript est désactivé, ça ne marchera simplement
pas
• Effort supplémentaire pour le SEO
Mais nous pouvons les surmonter
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Bénéfices de faire un module personnalisé
• Utiliser WP_Query
• Fonctionne avec tous les types de données
ainsi que tous les champs
• « Fancy » Javascript
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Mr. Wilkins a hâte de commencer!
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
- 3 -
Jetons un coup d'oeil au code
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Dans WordPress, il y a déjà un mécanisme pour traiter
les requêtes en AJAX
pour la section « admin »
• /wp-admin/admin-ajax.php
• /wp-admin/admin-ajax.php?action=mon_callback
• Toutes requête à ce fichier seront envoyées à la fonction
appelé dans l'argument "action"
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Créons un simple plugin
• Post type
• Taxonomie
• Un Widget (affiche le filtre et le contenu)
• Javascript
• AJAX Callback
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Détail des filtres
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Détail du contenu WP_Query et sa« Loop »
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Le Javascript
• N’oubliez pas d’inclure le JavaScript
• Sur le premier chargement de la page:
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Écouter les changements du formulaire et
faire un « POST »
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
JSON
JSON (JavaScript Object Notation) est un format de données
textuelles, générique,[...]Il permet de représenter de l’information
structurée. (Wikipédia)
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Réponse à la requête d’AJAX:
Traitement de la réponse
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Dernière étape: Le « Callback »
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Envoyer la réponse JSON
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Démo fonctionnelle
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Les « Mais »
• Beaucoup de données, utiliser un « Pager » ou un
« infinite scroll » (comme Facebook)
• Pas de Javascript?
• Afficher le bouton «Submit» du formulaire et s'assurer
que le « Widget » prenne en compte les requêtes
POST
• Référencement (SEO)
• XML Sitemap très important pour compenser
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
- 4 -
Conclusion
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Bénéfices pour le client
• Les clients de Mr. Wilkins trouvent
rapidement ce dont ils ont besoin.
• Le site de Mr Wilkins est plus
attrayant que celui de ses
compétiteurs.
• Mr Wilkins peut utiliser le CMS pour
augmenter son volume de contenu
tout en gardant un site performant.
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Bénéfices pour le développeur
• Il n'a pas eu à se battre avec un plugin pour la présentation
des produits
• Facilité d’ajouter des champs et/ou filtres
• Il a pu utiliser le merveilleux et plein de ressource WP_Query.
• Son code est facilement réutilisable pour son prochain projet
peut importe les post types ou taxonomie
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Cette technique n'est pas juste valable
pour les « Posts »
• Users
• Catégories
• Commentaires
Et permet un filtrage avancé
• Sélectionner le nombre d’items par page
• Filtrer sur la langue
• Filtrer sur des plages de données (« range »)
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Bref, que retenir ?
Pas la peine d’utiliser un plugin existant
pour filtrer des listes.
Avec WP_Query et AJAX, vous bénéficiez
d’un contrôle supérieur sur vos listes de données
sans pour autant alourdir votre travail.
Briser la glace WordPress
Filtrer avec
AJAX
Détail du
Code
Conclusion
Merci !
Des questions
Contactez-nous :
info@symetris.ca
brad@symetris.ca / matthieu@symetris.ca
Présentation PPT disponible sur Slideshare
Code on Github (https://github.com/symetris/wordcamp2013)

More Related Content

Similar to Mieux Filtrer ses listes WordPress avec Ajax et WP_Query

Atelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée RennesAtelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée Renneswpalex
 
agoraCMS - WordPress, thèmes et plugins : mode d'emploi
agoraCMS - WordPress, thèmes et plugins : mode d'emploiagoraCMS - WordPress, thèmes et plugins : mode d'emploi
agoraCMS - WordPress, thèmes et plugins : mode d'emploiLionel Pointet
 
10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPressAurélien Denis
 
Présentation welcom la webperf by object23
Présentation welcom la webperf by object23Présentation welcom la webperf by object23
Présentation welcom la webperf by object23Brigitte Marandon
 
Faites décoller votre site avec Jetpack - WordCamp Montreal 2015
Faites décoller votre site avec Jetpack - WordCamp Montreal 2015Faites décoller votre site avec Jetpack - WordCamp Montreal 2015
Faites décoller votre site avec Jetpack - WordCamp Montreal 2015Richard Archambault
 
Construisez votre intranet avec microsoft office 365 sans code a os canadia...
Construisez votre intranet avec microsoft office 365 sans code   a os canadia...Construisez votre intranet avec microsoft office 365 sans code   a os canadia...
Construisez votre intranet avec microsoft office 365 sans code a os canadia...Samuel Lévesque
 
Le meilleur pour votre site WordPress
Le meilleur pour votre site WordPressLe meilleur pour votre site WordPress
Le meilleur pour votre site WordPressAurélien Denis
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webNour El Houda
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webIZZA Samir
 
Sécurité WordPress
Sécurité WordPressSécurité WordPress
Sécurité WordPressChi Nacim
 
Sécuriser un site Wordpress
Sécuriser un site WordpressSécuriser un site Wordpress
Sécuriser un site Wordpressbestyuna
 
Un site web en 5 minutes avec le CMS Wordpress- SFD Douala 2014
Un site web en 5 minutes avec le CMS Wordpress-  SFD Douala 2014Un site web en 5 minutes avec le CMS Wordpress-  SFD Douala 2014
Un site web en 5 minutes avec le CMS Wordpress- SFD Douala 2014Mak YIMEN
 
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...pierredargham
 
Optimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPressOptimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPressDaniel Roch - SeoMix
 
WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !Aurélien Denis
 
Décoller votre site avec Jetpack
Décoller votre site avec JetpackDécoller votre site avec Jetpack
Décoller votre site avec JetpackRichard Archambault
 
Wordpress pour les entreprises
Wordpress pour les entreprisesWordpress pour les entreprises
Wordpress pour les entreprisesmonsieurpixel
 
Grics 2017 - construisez votre intranet avec microsoft office 365 sans code
Grics   2017 - construisez votre intranet avec microsoft office 365 sans codeGrics   2017 - construisez votre intranet avec microsoft office 365 sans code
Grics 2017 - construisez votre intranet avec microsoft office 365 sans codeSamuel Lévesque
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performanteJean-Pierre Vincent
 

Similar to Mieux Filtrer ses listes WordPress avec Ajax et WP_Query (20)

Atelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée RennesAtelier WordPress - Freelance fair tour - La cordée Rennes
Atelier WordPress - Freelance fair tour - La cordée Rennes
 
agoraCMS - WordPress, thèmes et plugins : mode d'emploi
agoraCMS - WordPress, thèmes et plugins : mode d'emploiagoraCMS - WordPress, thèmes et plugins : mode d'emploi
agoraCMS - WordPress, thèmes et plugins : mode d'emploi
 
10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress10 conseils pour booster les performances de votre site sous WordPress
10 conseils pour booster les performances de votre site sous WordPress
 
Sécuriser un site Wordpress
Sécuriser un site WordpressSécuriser un site Wordpress
Sécuriser un site Wordpress
 
Présentation welcom la webperf by object23
Présentation welcom la webperf by object23Présentation welcom la webperf by object23
Présentation welcom la webperf by object23
 
Faites décoller votre site avec Jetpack - WordCamp Montreal 2015
Faites décoller votre site avec Jetpack - WordCamp Montreal 2015Faites décoller votre site avec Jetpack - WordCamp Montreal 2015
Faites décoller votre site avec Jetpack - WordCamp Montreal 2015
 
Construisez votre intranet avec microsoft office 365 sans code a os canadia...
Construisez votre intranet avec microsoft office 365 sans code   a os canadia...Construisez votre intranet avec microsoft office 365 sans code   a os canadia...
Construisez votre intranet avec microsoft office 365 sans code a os canadia...
 
Le meilleur pour votre site WordPress
Le meilleur pour votre site WordPressLe meilleur pour votre site WordPress
Le meilleur pour votre site WordPress
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du web
 
Sécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du webSécuriser un site WordPress - Semaine du web
Sécuriser un site WordPress - Semaine du web
 
Sécurité WordPress
Sécurité WordPressSécurité WordPress
Sécurité WordPress
 
Sécuriser un site Wordpress
Sécuriser un site WordpressSécuriser un site Wordpress
Sécuriser un site Wordpress
 
Un site web en 5 minutes avec le CMS Wordpress- SFD Douala 2014
Un site web en 5 minutes avec le CMS Wordpress-  SFD Douala 2014Un site web en 5 minutes avec le CMS Wordpress-  SFD Douala 2014
Un site web en 5 minutes avec le CMS Wordpress- SFD Douala 2014
 
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
Pensez Web-Performances avec WordPress - Une conférence de Julien Oger et Pie...
 
Optimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPressOptimiser réellement le référencement naturel de WordPress
Optimiser réellement le référencement naturel de WordPress
 
WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !WordPress sous stéroïdes : votre site Web vers les sommets !
WordPress sous stéroïdes : votre site Web vers les sommets !
 
Décoller votre site avec Jetpack
Décoller votre site avec JetpackDécoller votre site avec Jetpack
Décoller votre site avec Jetpack
 
Wordpress pour les entreprises
Wordpress pour les entreprisesWordpress pour les entreprises
Wordpress pour les entreprises
 
Grics 2017 - construisez votre intranet avec microsoft office 365 sans code
Grics   2017 - construisez votre intranet avec microsoft office 365 sans codeGrics   2017 - construisez votre intranet avec microsoft office 365 sans code
Grics 2017 - construisez votre intranet avec microsoft office 365 sans code
 
Inclure du Javascript de manière performante
Inclure du Javascript de manière performanteInclure du Javascript de manière performante
Inclure du Javascript de manière performante
 

More from Symetris

Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...Symetris
 
Écrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet DrupalÉcrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet DrupalSymetris
 
How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...Symetris
 
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
Should you upgrade  your Drupal 7 website or  migrate to Drupal 8? Should you upgrade  your Drupal 7 website or  migrate to Drupal 8?
Should you upgrade your Drupal 7 website or migrate to Drupal 8? Symetris
 
Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...Symetris
 
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...Symetris
 
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris
 
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...Symetris
 
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014Symetris
 
Symetris ambiance
Symetris ambianceSymetris ambiance
Symetris ambianceSymetris
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectSymetris
 
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détailsPrésentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détailsSymetris
 
Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?Symetris
 
Connecter Drupal à des API externes
Connecter Drupal à des API externesConnecter Drupal à des API externes
Connecter Drupal à des API externesSymetris
 

More from Symetris (14)

Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
Hyperpersonnalisation des sites web et écosystèmes numériques - Les best prac...
 
Écrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet DrupalÉcrire de la documentation persistante pour un projet Drupal
Écrire de la documentation persistante pour un projet Drupal
 
How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...How to maintain, evolve and maximize the return on your Drupal website invest...
How to maintain, evolve and maximize the return on your Drupal website invest...
 
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
Should you upgrade  your Drupal 7 website or  migrate to Drupal 8? Should you upgrade  your Drupal 7 website or  migrate to Drupal 8?
Should you upgrade your Drupal 7 website or migrate to Drupal 8?
 
Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...Different approaches for different scopes: How to tackle a medium-sized Dr...
Different approaches for different scopes: How to tackle a medium-sized Dr...
 
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
Trop gros pour des mercenaires, trop petit pour une armée: Comment s'attaquer...
 
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
Symetris présente Drupal 8 - Linux-Meetup (Montreal) 02/02/2016
 
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
Les particularités de Drupal en gestion de projet: une histoire d’amour et de...
 
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
Personnaliser l'interface administrateur de Drupal - DrupalCamp Montreal 2014
 
Symetris ambiance
Symetris ambianceSymetris ambiance
Symetris ambiance
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal project
 
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détailsPrésentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
Présentation Symetris - Drupalcamp Montreal 2013 le diable est dans les détails
 
Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?Générer plus de revenus par le web: Pouvez-vous faire mieux ?
Générer plus de revenus par le web: Pouvez-vous faire mieux ?
 
Connecter Drupal à des API externes
Connecter Drupal à des API externesConnecter Drupal à des API externes
Connecter Drupal à des API externes
 

Mieux Filtrer ses listes WordPress avec Ajax et WP_Query

  • 1. Mieux Filtrer vos listes avec AJAX *** Trucs et conseils pour mieux filtrer vos listes WordPress via AJAX
  • 2. Symetris libère votre potentiel web. *** • Fondée à Montréal en 2004 • 9 spécialistes web à l’interne • Développement de sites web qui vont au-delà du marketing • Maîtrise des CMS open-source • Optimisation pour les appareils mobiles Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 3. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion Qui sommes-nous? Brad Muncs Président Symetris 12 ans d’expérience dans le web Je mange du web matin, midi et soir Matthieu Gadrat Développeur PHP et Lead technologique 4 ans d’expérience avec des CMS open-source Amateur de ski
  • 4. Ordre du jour 1. Les listes dans WordPress 2. Améliorer les filtres avec AJAX 3. Jetons un coup d’oeil au code 4. Conclusion Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 5. - 1 - Pourquoi WordPress est un outil de choix pour nos clients? Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 6. WordPress est plus qu’un blogue • CMS complet • Différent type de contenu (Post types) • Catégorisation facile à utiliser • WordPress est bon pour générer des listes Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 7. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion Mr. Wilkins Mr Wilkins est un distributeur de nourriture pour chien • Entreprise de taille moyenne • Distribue à des détaillants (B2B) • A besoin d'un catalogue en ligne pour présenter ses produits Prenons comme exemple d’entreprise :
  • 8. • WordPress est donc l'outil parfait pour un catalogue • Parfait pour Mr Wilkins Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 9. Dans WordPress, les listes sont déjà présentes • Liste de post • Archives • Catégories • Tags Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 10. Filtrage traditionnel dans WordPress • Via les URL • Par catégorie ou tag Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 11. Bénéfices • Ça fonctionne «Out of the box » • Intuitif • Pas de code Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 12. Obstacles pour les utilisateurs • Plus il y a de données, plus c’est laborieux • Pas de «Custom fields» • Pas de filtre complémentaire (Faceted search) • Visuellement décevant • La page doit être rafraichie à chaque nouvelle requête Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 13. • Contiennent beaucoup de données • Incluent des spécifications (Custom Fields) • Doivent être efficaces Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion Les listes de produit de Mr Wilkins:
  • 14. Pour atteindre les objectifs de Mr. Wilkins, il faut étendre les fonctionnalités de filtre de WordPress Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 15. - 2 - Mieux filtrer les listes de « POST » dans WordPress Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 16. Plugin disponibles • Faceted Search • http://wordpress.org/plugins/faceted-search/ • Catégories / Tags • wp-posts Filter • http://wordpress.org/plugins/wp-posts-filter/ • Catégories / Tags Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 17. Plugin disponibles • ajax posts Filter • http://wordpress.org/plugins/ajax-post-filter/ • Quicksand jQuery Post filter • http://wordpress.org/plugins/quicksand-jquery-post-filter/ • Utilise jQuery Quicksand • Mauvais pour gros volume de données • ETC… Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 18. Il est possible que l'une de ces solutions, ou un autre plugin soient suffisants... ... Mr Wilkins, lui, n'est pas satisfait Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 19. Nous allons donc lui créer une solution personnalisée en utilisant AJAX avec WordPress (et WP_Query) Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 20. WP_Query est un objet à l’origine de la création des listes dans WordPress En fait, c’est le dénominateur commun de toute les requêtes. • WP_Query est roi • WP_Query est puissant • WP_Query est flexible Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 21. Qu'est-ce qu'AJAX? Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 22. Définition • Asynchronous JavaScript And XML • Échange de donnée XML et Javascript de manière asynchrone lors de la navigation d'un utilisateur sur une même page web. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 23. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 24. Avantages • Performant pour l'affichage d'un grand nombre de données (en petites doses) • Feedback constant à l'utilisateur • Permet des effets Javascript « Fancy » Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 25. Inconvénients • Attention à l'accessibilité • Si le JavaScript est désactivé, ça ne marchera simplement pas • Effort supplémentaire pour le SEO Mais nous pouvons les surmonter Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 26. Bénéfices de faire un module personnalisé • Utiliser WP_Query • Fonctionne avec tous les types de données ainsi que tous les champs • « Fancy » Javascript Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 27. Mr. Wilkins a hâte de commencer! Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 28. - 3 - Jetons un coup d'oeil au code Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 29. Dans WordPress, il y a déjà un mécanisme pour traiter les requêtes en AJAX pour la section « admin » • /wp-admin/admin-ajax.php • /wp-admin/admin-ajax.php?action=mon_callback • Toutes requête à ce fichier seront envoyées à la fonction appelé dans l'argument "action" Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 30. Créons un simple plugin • Post type • Taxonomie • Un Widget (affiche le filtre et le contenu) • Javascript • AJAX Callback Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 31. Détail des filtres Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 32. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 33. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 34. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 35. Détail du contenu WP_Query et sa« Loop » Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 36. Le Javascript • N’oubliez pas d’inclure le JavaScript • Sur le premier chargement de la page: Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 37. Écouter les changements du formulaire et faire un « POST » Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 38. JSON JSON (JavaScript Object Notation) est un format de données textuelles, générique,[...]Il permet de représenter de l’information structurée. (Wikipédia) Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion Réponse à la requête d’AJAX:
  • 39. Traitement de la réponse Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 40. Dernière étape: Le « Callback » Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 41. Envoyer la réponse JSON Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 42. Démo fonctionnelle Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 43. Les « Mais » • Beaucoup de données, utiliser un « Pager » ou un « infinite scroll » (comme Facebook) • Pas de Javascript? • Afficher le bouton «Submit» du formulaire et s'assurer que le « Widget » prenne en compte les requêtes POST • Référencement (SEO) • XML Sitemap très important pour compenser Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 44. - 4 - Conclusion Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 45. Bénéfices pour le client • Les clients de Mr. Wilkins trouvent rapidement ce dont ils ont besoin. • Le site de Mr Wilkins est plus attrayant que celui de ses compétiteurs. • Mr Wilkins peut utiliser le CMS pour augmenter son volume de contenu tout en gardant un site performant. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 46. Bénéfices pour le développeur • Il n'a pas eu à se battre avec un plugin pour la présentation des produits • Facilité d’ajouter des champs et/ou filtres • Il a pu utiliser le merveilleux et plein de ressource WP_Query. • Son code est facilement réutilisable pour son prochain projet peut importe les post types ou taxonomie Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 47. Cette technique n'est pas juste valable pour les « Posts » • Users • Catégories • Commentaires Et permet un filtrage avancé • Sélectionner le nombre d’items par page • Filtrer sur la langue • Filtrer sur des plages de données (« range ») Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 48. Bref, que retenir ? Pas la peine d’utiliser un plugin existant pour filtrer des listes. Avec WP_Query et AJAX, vous bénéficiez d’un contrôle supérieur sur vos listes de données sans pour autant alourdir votre travail. Briser la glace WordPress Filtrer avec AJAX Détail du Code Conclusion
  • 49. Merci ! Des questions Contactez-nous : info@symetris.ca brad@symetris.ca / matthieu@symetris.ca Présentation PPT disponible sur Slideshare Code on Github (https://github.com/symetris/wordcamp2013)