Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

22
Meetup #3 Bien organiser son code dans WordPress : un peu d’objet beaucoup d’effets

description

3ème Meetup WordPress Lyon. Plus d'information http://wplyon.org

Transcript of Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Page 1: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Meetup #3

Bien organiser son code dans WordPress : un peu d’objet beaucoup

d’effets

Page 2: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Constat• En 4 ou 5 années d’utilisation de WordPress et

une centaine de réalisations, nous avons rarement procédé de la même manière pour aborder un projet.

Page 3: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Pourquoi #1• WordPress évolue vite. Il faut donc intégrer

dans la mesure du possible les nouvelles possibilités :

– Apparition des menus.– Apparition des custom post types. – Emergence de plugin « professionnels » (Yoast,

WooCommerce, MailPoet, etc..)

Page 4: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Pourquoi #2• WordPress laisse beaucoup de libertés aux

développeurs :– Codex plutôt complet mais pas de vrais « CookBook ».– Documentation« atomisée ». Difficile d’avoir une

vision d’ensemble.– Trop souvent on trouve dans Google un « snippet » de

10 lignes que l’on colle dans functions.php . C’est à la fois la force et la faiblesse de WordPress.

Page 5: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

3 inconvénients majeurs

1. C’est dur à relire.

2. C’est dur à “versionner”.

3. C’est dur à ré-utiliser.

Page 6: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

« Je bosse sur les CTP's, mais toi plutôt dans le bas du fichier pour tes enqueues sinon on va conflicter » Thomas D.

« Merde. C’est quoi ce projet déjà où on avait une super Google Map ? » Virginie G.

Conséquences

Page 7: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

LE CAS DES CUSTOM POST TYPESEssayons de faire mieux

Page 8: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Rappel• Apparus avec WordPress 3.0• Evolution majeure pour les développeurs et

les webmasters• WordPress devient un vrai CMS et plus

seulement un « un truc pour faire des blogs »• Les clients adorent

Page 9: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Quand les utiliser ?• Lorsque vous manipulez un contenu qui n’est ni

une vraiment page, ni vraiment un article. Généralement, c’est le cas lorsque les fichiers single.php et/ou page.php ne conviennent pas pour leur affichage.– Gérer les boutiques d’une enseigne– Gérer des témoignages clients– Gérer un portfolio

Page 10: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Comment les ajouter à son projet?

Sous la forme de plugins dédiés– Le Post Type crée pourra « survivre » à un

changement de Thème.– Le Post Type que je m’apprête à ajouter pourra me

servir sur d’autres projets. (d’autant plus si l’ensemble du code est isolé au sein d’un dossier unique.)

Page 11: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Un plugin pour faire quoi ?• Cela dépend de mon projet évidemment, ici

on va simplement gérer les participants de notre meetup.

• Le besoin est assez simple : – Ajout / édition / suppression en back-office.– Lecture en front (Single + Archive) avec templates,

css et requêtes spécifiques.

Page 12: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Traduction du besoin en WordPress• init (pour l’enregistrement du CTP),• pre_get_posts (pour adapter notre requête),• wp_enqueue_scripts (pour une CSS

spécifique), • template_include (pour gérer nos templates

directement depuis le plugin)=> 4 fonctions sur 3 actions et 1 filtre

Page 13: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

En objet c’est encore mieux

• Cela permet de disposer de propriétés.– protected $_post_type = 'participants';– protected $_posts_per_page = -1;

• Cela permet d’éliminer le function_exists et le risque de collision.

=> Plus facile à lire et à comprendre donc facile à modifier/réutiliser

Page 14: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 15: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 16: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 17: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 18: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 19: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 20: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 21: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.
Page 22: Meetup WordPress Lyon #3 : Bien organiser son code dans WordPress.

Mission accomplie

100% du code nécessaire à notre fonctionnalité se situe dans le plugin.