Il faut sauver le soldat Mozilla!

Aujourd’hui, je prends le clavier pour vous parler de tout autre chose que WordPress. Mozilla, l’entité qui développe l’excellent navigateur internet Firefox a annoncer supprimer encore 1/4 de ses effectifs.

Les suppressions d’emploi ne sont pas le principal problème…

Dérrière l’annonce de Mozilla se cache quelque chose de bien plus grave à mon sens… puisque la disparition de Firefox entrainerait un afflux vers son concurrent Google Chrome et donnerait encore plus de poids a ce géant qui a fait du monopole sont cheval de bataille.

Ouais mais moi j’aime bien Google Chrome!

Oui et personne ne t’empêche de t’en servir mais afin de garder un semblant de liberté dans ce monde, ce serait bien d’utiliser aussi Mozilla Firefox afin de lui faire prendre des parts de marché et donner foi à ses développeurs.

Le but n’est pas de voir Firefox avec 90% de part de marché comme l’explique très bien Nicolas Hoffman dans son tweet :

Le but c’est de garder le choix d’utiliser Firefox, Chrome, Edge ou tout autre navigateur web afin qu’aucun n’ai un monopole et dicte ses règles et nous prive de nos libertés de choix et accessoirement revende nos données personnelles.

Ajouter des icônes personnalisées à vos projets avec ACF et ACF: FontAwesome Field

Si vous avez l’habitude de créer votre propres icônes web, vous devez connaître Icomoon. Pour un projet client utilisant déjà FontAwesome, j’ai eu besoin d’ajouter 2 icônes personnalisées provenant en utilisant le service Icomoon.

Pour cet article, j’ai utilisé Icomoon mais vous devriez pouvoir adapter, vous inspirer de cet article pour insérer n’importe quel icône personnalisé.

Les icônes FontAwesome étaient utilisées sur des éléments de menu grâce à Advanced Custom Fields et Advanced Custom Fields: Font Awesome Field. le but est donc d’ajouter à la liste des icônes FontAwesome, mes 2 ou 3 icônes customs d’icomoon.

Afficher les icones Icomoon dans le champs ACF FontAwesome

Advanced Custom Fields: Font Awesome Field que je nommerai dorénavant ACFFA propose un filtre permettant de venir modifier la liste des icônes:

ACFFA_get_icons
add_filter( 'ACFFA_get_icons', 'cot_test' );
function cot_test( $icons ) {
$icomoon = array(
'cierge' => array(
'name' => 'cierge',
'hex' => '\e90e',
'unicode' => ''
),
'calice' => array(
'name' => 'calice',
'hex' => '\e90f',
'unicode' => ''
),
);
foreach ( $icomoon as $ico ) {
$icons['list']['far'][ 'far ' . $ico['name'] ] = '<i class="icon-' . $ico['name'] . '"></i> ' . ucfirst(
$ico['name'] );
$icons['details']['far']['far ' . $ico['name']]['hex'] = $ico['hex'];
$icons['details']['far']['far ' . $ico['name']]['unicode'] = $ico['unicode'];
}

return $icons;
}

Ici nous filtrons la liste existantes des icônes FA pour y ajouter nos icônes personnalisées. Malheureusement, l’extension de Matt Keys étant développées pour FA, seules les catégories FontAwesome sont disponible à savoir Brand (fab), Regular (far), Style (fas). J’ai décidé d’ajouter mes icônes dans les Regular soit Far. Ceci est purement arbitraire.

Décortiquons le code ci-dessus

array(
'cierge' => array(
'name' => 'cierge',
'hex' => '\e90e',
'unicode' => '&#xe90e;'
),

Ici je déclare les icônes Icomoon que je vais vouloir utiliser:

  • name: le nom de l’icône dans la liste
  • hex: le code hexadécimal fourni par Icomoon
  • unicode: l’unicode de l’icône Icomoon

Ensuite, avec une boucle foreach, je vais alimenter le tableau $icons contenant les icônes FontAwesome

Afficher les icônes en back-office

Pour afficher les icônes en back-office, il va falloir que la feuille CSS Icomoon avec toutes les icônes soient chargées coté back-end.

Pour ça, nous allons ajouter ce code:

add_action( 'admin_print_styles', 'cot_load_icomoon_css' );

Si vous êtes habitués a développer vos thèmes vous connaissez le hook d’action WordPress wp_enqueue_scripts qui permet de charger des feuilles de styles et des scripts en front-end. Sachez qu’il existe aussi un équivalent pour le back-office et il se nomme admin_print_styles.

add_action( 'admin_print_styles', 'cot_load_icomoon_css' );
add_action( 'wp_enqueue_scripts', 'cot_load_icomoon_css', 9, 1 );
function cot_load_icomoon_css(){
wp_enqueue_style( 'font-icomoon', get_template_directory_uri() . '/css/iconmoon.css');
}

Ici je charge donc la feuille CSS en front et en back-office.

J’ai mis une priorité 9 au chargement front afin de passer juste avant le chargement de la feuille de style du thème et de pouvoir par la suite les utiliser dans mon thème. Par défaut un add_action() à une priorité de 10.

Afficher les icônes en front office

En front-office, l’extension ACF FontAwesome retourne un balisage HTML formaté pour FA (normal!). Nous, on veut que dans certains cas, celui de notre icône personnalisée on aille charger une autre police (celle générée par Icomoon).

Icomoon m’a fourni 4 fichiers de polices de caractères ( .eot, .svg, .ttf et .woff) que j’ai placé dans mon projets. Le fichier icomoon.css fait un @font-face afin que les polices soient chargées

Le problème réside dans le fait que l’extension de Matt Keys génère un markup HTML FA et qu’il va falloir “ruser” pour détourner le fonctionnement seulement pour les icônes Icomoon. Et oui, on veut pouvoir continuer à utiliser normalement FontAwesome!

<i class="far cierge" aria-hidden="true"></i>

On retrouve la class far de FA qui va charger la police FontAwesome puis la class cierge générée à partir du nom données dans la liste des extension a insérer.

Pour que le site charge ma police au lieu de celle de FontAwesome, j’ai créé une feuille CSS modifiant le style des ces classes:

.far.cierge:before {
font-family: "ma-police-icomoon";
content: "\e90e";
}

Pour chaque icône personnalisée je demande à WordPress de charger ma-police-icomoon et d’utiliser le contenu ayant le code hex corespondant à mon icône.

Kawi : le thème qui vous veut du bien !

Je vous propose aujourd’hui un article un peu différent puisque que je vais vous présenter un thème… ne vous attendez pas à une review de 4000 lignes… je n’ai pas les talents d’écriture de la marmite!

Dis c’est quoi ton thème ?

Le thème dont je voulais vous parlez n’est autre que celui que vous voyez habiller thivinfo.com: Kawi de Vincent Dubroeucq

Pourquoi Kawi ?

C’est assez simple, je ne suis pas développeur front, je ne voulais pas développer un thème de A à Z sachant que des collègues de la communauté francophone WordPress en avaient déjà développés des bons…

Mon amie Marie Comet m’a simplement fait découvrir le thème de Vincent en me disant:

  • Il est léger
  • respectueux des bonnes pratiques de développement WordPress et de l’accessilbilité (a11y)
  • facile à customiser

Bingo! je pars la dessus.

Un thème enfant ou un starter thème ?

Je me suis alors posé la question, est ce que tu vas t’en servir comme un starter thème ou bien plus classiquement en créant un thème enfant?

Outre la version du répertoire officiel des thèmes WordPress, Vincent propose également son thème sur Github. L’avantage de cette version étant de proposer les sources SASS qui compose la feuille de style. Il s’agit donc d’une version plus orientée pour les développeurs qui voudraient s’en servir de base de travail…

Ok, mais ai je envie de me couper des améliorations que Vincent pourrait apporter a son thème? pas vraiment, j’ai donc opté pour la création d’un thème enfant afin de garder les possibles futures évolutions du thème.

La  version que vous voyez est donc la version enfant du thème disponible gratuite sur le repertoire WordPress.

Pourquoi changer de thème ?

Et pourquoi pas d’ailleurs?!

En premier lieu car le précédent basé sur le thème Humescores de Morten Rand-Hendriksen avait pris de l’embonpoint au fil des ans. Au bout de 4 ans environs, à force de tests, de modifications graphiques, fonctionnelles… le thème était devenu lourd à gérer et à charger.

Et puis l’envie de changer un peu également!

Quelles modifications ont été apportés ?

Finalement très peu car en tant que grand artiste devant l’éternel, j’ai repris quasiment le même style et la même disposition de la page d’accueil!

La différence se trouve plutot sous le capot car le CSS de mon thème enfant est créé grâce à SASS ce qui ma permis de découvrir l’excellent outils Prepros m’évitant une installation d’un outils supplémentaire comme Gulp et ses multiples dépendances jamais a jour quand je veux l’utiliser. A propos de Sass, si vous désirez comprendre rapidement le principe, je vous conseille la vidéo de l’atelier animé par Thierry Pigot de WP Paris

Résultats

Le résultat se résume donc à un site plus rapide a s’afficher, plus accessible aux personnes en situation de handicap ou utilisant du matériel adapté. Pour moi, il s’agit d’un thème plus léger a maintenir et prêt a évoluer selon mes futures idées…

3, 2, 1 Traduisez!

Le 17 avril 2020 aurait du y avoir lieu un WordCamp à Paris. Compte tenu de la situation dû au COVID19, celui ici comme tant d’autres a été annulé.

L’idée d’organiser une journée de rencontre virtuelle à donc germée dans la tête de plusieurs membres de la communauté WordPress Francophone !

On organise donc une demie journée de contribution au projet WordPress ouverte à tous que vous soyez contributeur aguerri ou néophyte.

Participer

Pour participer rien de plus simple, inscrivez vous pour participer à la visioconférence Zoom. La coordination se fera également via le Slack de la communauté francophone et plus particulièrement sur la chaine #wptranslationday, pour obtenir une invitation, c’est par ici

Lire l’annonce officielle

A vendredi !

WP Grid Builder pour créer facilement un système de recherche à facettes avec WordPress

Aujourd’hui je vais vous présenter une solution française pour créer une système de recherche à facette !

Qu’est ce qu’une recherche à facette ?

Une recherche à facette est une technique permettant de resserrer les résultats au fur et à mesure que l’on sélectionne des critères de recherches.

Mais si vous savez, vous arrivez sur une page avec 200 T-shirt. Vous sélectionnez votre taille, il reste 128 choix, puis la couleur il reste 50 possibilité, puis le prix et vous obtenez le seul modèle que vous pouvez vous offrir!

Jusqu’il n’y a pas si longtemps, il fallait, sur WordPress, utiliser l’extension FacetWP mais depuis peu, une nouvelle extension développée dans le sud de la France à fait son apparition: WP Grid Builder

Si FacetWP se limite à proposer un outils orienté développeurs pour créer des facettes, WP Grid Builder est lui orienté grand public et ne se content pas de proposer des facettes.

Des facettes et des grilles de contenus

En effet, il propose aussi l’affichage de grille (Grid) et de templates, le tout facilement administrable dans le backoffice de votre WordPress.
Ainsi les non développeurs pourront sans une ligne de code créer une page comportant une zone de recherche a facettes et afficher la résultats sous forme de grille.

WP Grid Builder pour les développeurs.

Vous êtes développeur alors bénéficiez de toute la puissance de WP Grid Builder en créant vos facettes et vos templates directement dans vos projets.

WP Grid Builder a été pensé pour que les développeurs de site web WordPress puissent aisément réaliser toutes sorte de projets. Ainsi ils retrouveront des fonctions et hooks PHP et JS.

Bien sur, une documentation détaillée des fonctions est disponible sur son site internet

WP Grid Builder pour les nons développeurs.

Vous n’êtes pas développeurs ?

Rien de grave, Loïc a pensé a tout. Ainsi vous pourrez créer vos facettes, vos grilles et vos cartes directement dans le back-office et afficher vos créations via des codes courts ou bien des blocks Gutenberg pour le nouvel éditeur.

Allo Docteur? J’ai un problème!

Qui ne s’est jamais retrouvé devant son site internet ou celui d’un client équi ne fait pas ce qu’on veut” ? C’est à ce moment là que le support des extensions payante entre en jeu… et avec WP Grid Builder, en tant que francophone nous sommes gâté puisque Loïc vit dans le sud de la France.

Il réponds donc en français sur notre fuseau horaire… ce qui apporte une réactivité qui est toujours appréciée!

Rien ne vaut des exemples!

Comme on dit: Une image vaut 1000 mots. je viens de remplacer FacetWP sur Thivinfo.com par WP Grid Builder.

Voyez plutôt le résultat:

Amusez vous bien 🙂

Créer vos blocs Gutenberg facilement avec Carbon Fields

Présentation de Carbon Fields

Carbon Fields est une solution concurrente du célèbre Advanced Custom Field (ACF) mais qui a la particularité de pouvoir être embarqué dans vos thèmes et extensions maison.

En effet, vous ne pouvez pas utiliser ACF Pro dans vos extensions gratuites a destination par exemple du dépôt WordPress.

Comme ACF, Carbon Fields propose une solution entièrement en PHP pour créer des blocs compatibles avec le nouvel éditeur de WordPress: Gutenberg!

Les blocs Gutenberg ont fait leur apparition dans Carbon Fields 3.0.

Installer Carbon Fields

Attention, la version disponible sur le dépôt WordPress est loin d’être à jour.

Carbon fields propose 2 méthodes d’installation: la première et la seconde.

Installer Carbon Fields avec Composer

Cette méthode a une approche plus orientée “développeur”, c’est celle qui est mise en avant dans la documentation de Carbon Fields.

Bien sur, votre système doit disposer de Composer mais si vous suivez cette section, je suppose que vous connaissez, l’avez déjà installé sinon je vous invite à suivre la seconde méthode, sans Composer ou bien à installer Composer.

Rendez vous dans le répertoire de l’extension ou du thème dans lequel vous voulez ajouter votre bloc Gutenberg.

Pour la suite du tutoriel, je partirais du principe que nous sommes dans une extension mais dans le cas d’un thème, vous initialiserez Carbon Fields dans votre functions.php.

La commande :

composer require htmlburger/carbon-fields

va installer carbon-fields dans le dossier vendor de votre projet. Si celui-ci n’existe pas, alors il sera créé.

Ensuite dans le fichier principal de votre extension, ajoutez le code suivant:

PHP

Installer Carbon Fields sans Composer

Sans Composer, vous devrez télécharger Carbon Fields, le décompresser et l’ajouter a votre projet.

Ensuite il conviendra d’adapter la fonction de chargement:

PHP

Création d’un Bloc Gutenberg en PHP

Comme je le disais en introduction, Carbon Fields est un produit similaire à ACF à ceci près qu’il ne dispose pas d’une interface graphique pour la création des champs personnalisé.

C’est un paragraphe dédié à la création de bloc Gutenberg et il nous cause de champs personnalisé… il a craqué!

mes gentils lecteurs 🙂

Effectivement, si je vous parle de champs personnalisé ici c’est que, comme ACF, ils vont être la matière première pour créer notre bloc.

Tous les types de champs que vous retrouverez dans la documentation sont utilisable pour ajouter des réglages a notre bloc Gutenberg.

En route pour la création!

Première étape, créer un fichier PHP qui accueillera vos déclarations de fonctions qui créeront le bloc.

Ici c’est selon vos habitudes, en procédural ou en POO, un simple fichier PHP ou bien une classe.

Je vais pour ce tutoriel l’écrire en PHP procédural afin qu’il soit le plus accessible possible. Ceux ayant l’habitude de développer en Orienté Objet, n’auront aucun mal à adapter leur code.Créer un fichier mon-block.php

Une fois créé, nous allons déclarer le bloc:

PHP

Expliquons ce que fais ce code:

use Carbon_Fields\Block;

va simplement dire a notre fichier PHP qu’il faut utiliser Carbon_Fields et notament la sections dédié aux Blocks.

Block::make( __( 'My Shiny Gutenberg Block' ) )

va déclarer le bloc auprès de WordPress. Il aura ici le nom de “My Shiny Gutenberg Block”. Notez que le nom du block est déclaré dans une function d’internationalisation (i18n) qui va permettre de traduire votre bloc.

Il serait d’ailleurs judicieux d’y ajouter votre text-domain ce qui donnerait:

Block::make( __( 'My Shiny Gutenberg Block', 'mon-text-domain ) )

Ensuite vient la déclaration des paramètres de votre bloc Gutenberg qui se fait via la méthode add_fields( )

Ici nous ajoutons 3 réglages:

  • un champ de texte simple
  • un champ de sélection d’image
  • un champs de texte riche.

Les champs sont tous créé sur le même modèle:

Field::make( 'type de champs', 'identifiant unique', 'libellé du champs')

Enfin, la méthode set_render_callback() va elle générer l’affichage front ainsi que la prévisualisation de votre bloc Gutenberg.

Dans les faits, écrivez une fonction qui va retourner un html valide et appelez-la dans set_render_callback( )

Dans cette fonction, vous passerez en paramètre $block qui sera un array regroupant les paramètres de votre block. Les clés de ce tableau étant les identifiants unique de votre bloc Gutenberg.

https://youtu.be/_sp4uIwvRKg
Votre Block en action!

Aller plus loin avec Carbon Fields

Je ne peux pas terminer ce tutoriel sans vous présenter un peu mieux Carbon Fields car tant qu’a l’embarquer dans vos projets pour créer facilement des blocs Gutenberg, autant en tirer tout son potentiel.

Vous pourrez donc avec Carbon Fields créer des champs personnalisés pour tout les types de publications présents sur votre site mais également créer des pages d’options pour votre thème ou vos extensions.

Si vous voulez voir ce que ca donne en live, je vous invite a installer et regarder mon extension WP GestSup Connector qui embarque Carbon Fields et avec lequel j’ai créé un block Gutenberg mais également la page d’option de l’extension.

WP GestSup Connector

WP GestSup Connector

Wp GestSup Connector vous permets de connecter votre Site WordPress au logiciel de ticket GestSup http://gestsup.fr

Sébastien Serre

Afficher facilement vos agendas Openagenda.com sur votre site WordPress avec OpenAgenda pour WordPress

— Edit du 23/02/2020 —
Vu le trop peu de vente de cette extension rapporté au temps de développement de celle ci, j’ai décidé de ne plus proposer de version premium.
La version gratuite disponible sur le répertoire des extensions WordPress a été mise en ajour en version 2.0.0 avec les anciennes fonctionnalités payante.
Le support se fait désormais sur le forum officiel WordPress.

Openagenda.com est un service en ligne d’agendas. Son intérêt principal  est de se comporter comme un réseau social d’évènements. Vous pouvez facilement partager un évènement ou un agenda complet sur votre propre agenda en agrégeant les flux automatiquement.

Openagenda propose un systeme assez complet d’intégration de ses agendas dans vos sites internets mais l’inconvénient se trouve dans le fait que le CSS est à appliquer sur le site d’OpenAgenda et donc de dupliquer votre style avec toute la maintenance que cela entraîne. Si vous modifiez le style sur votre site, vous devez le modifier dans les réglages de votre openagenda.

Ensuite, manipuler du code HTML à coller dans votre éditeur WordPress… ce n’est pas forcément idéal… des règles de sécurité peuvent vous en empêcher par exemple.

Intégrer facilement WordPress et OpenAgenda

Mon but était donc de trouver une solution simple pour des non développeurs d’intégrer un agenda Openagenda dans leur site internet WordPress.

J’ai donc créé une extension WordPress dédiée qui propose un code-court et un widget permettant d’afficher ou bon vous semble vos agendas.

Il est prévu dans un futur (proche) de créer un block Gutenberg ainsi que des éléments pour les principaux constructeurs de page (Visual Composer, Elementor, Beaver builder…).

Voir la Démo de l’extension OpenAgenda pour WordPress

Je suis bien sur à votre écoute au niveau des idées d’amélioration à apporter via le forum de support dédié

OpenAgenda pour WordPress

OpenAgenda pour WordPress

Affichez facilement un évènement hébergé sur openagenda.com sur votre site WordPress.

Sébastien Serre

Une version Pro avec plus de fonctionnalité!

En plus de la version gratuite disponible sur le dépôt officiel WordPress, j’ai développé une version Pro payante apportant un certains nombre de fonctionnalités supplémentaires.

Des blocks et des Code courts

Afficher facilement vos éléments d’agenda en liste ou en carrousel grâce à un shortcode ou un block pour le nouvel éditeur.

Il est également possible d’intégrer via un shortcode ou un block, les widgets natif d’OpenAgenda (ceux que vous retrouvez dans les réglages d’OpenAgenda.com)

Gérer ses évènements directement sur le backoffice WP.

Fini la création des évènements sur OpenAgenda pour les afficher sur votre site WordPress. Dorénavant, vous créez vos évènements directement dans le backoffice WordPress, comme n’importe quel autre contenu.

OpenAgenda et The Event Calendar

Depuis la version 1.8.0, OpenAgenda pour WordPress est interfacé avec l’extension WordPress populaire The Event Calendar (TEC).

The Events Calendar

The Events Calendar

The Events Calendar est une extension modulable qui vous permet de partager facilement vos évènements. Elégante. Robuste. Impressionnante.

Modern Tribe, Inc.

Avec 700000 installations active et de multiples add-ons, TEC est l’outils idéal sous WordPress pour gérer ses évènement.

Continuez de gérer vos évènements sur TEC, ils seront publié automatiquement sur votre agenda OpenAgenda.com. Régulièrement, ceux créés sur OpenAgenda.com seront intégrés à TEC.

Un shortcode pour The Event Calendar

Afficher facilement vos évènements grace à un code court !

Et tu nous montre un exemple concret ?

Bien sur!

Le site de la commune de Thiverval-Grignon utilise cette extension dans sa forme connecteur The Event Calendar.

En accueil, vous avez les prochains évènements affichés avec le code court OpenAgenda The Event Calendar.

Les évènements sont créés en back office dans The Event Calendar et transmis à OpenAgenda. L’agenda sur OA est lui syndiqué notament dans l’agenda de la région Ile de France… ce qui démultiplie la visibilité des évènements qui auront lieu sur le petit village des Yvelines.

[freemius_checkout plugin_id=”2279″ plan_id=”3475″ pricing_id=”4790″ public_key=”pk_ab0021b682585d81e582568095957″ button=”Achetez Maintenant 1 site à partir de 39.99€” ]

Installer WordPress en 3 minutes !

On lit partout qu’il faut 5 minutes pour installer WordPress… et c’est FAUX ! On nous a menti! On peut l’installer beaucoup plus rapidement que ca…

La preuve en vidéo!

Installer WordPress multisite en 3 minutes

Ceux d’entre vous ayant déjà installé un multisite savent qu’après avoir installé WordPress, il faut rentrer des constantes dans le wp-config.php pour activer ce mode, se rendre dans le Back-Office, paramétrer le reseau et revenir dans le wp-config.php pour y coller un pavé de constantes ainsi que dans le .htaccess… bref largement plus qu’avec le script que je vous ai concocté!

Comment ca marche?

J’ai créé un script bash qui, lorsque vous le lancer vous pose quelques questions.

Rien de méchant, ce sont les informations que vous rentreriez lors de la routine d’installation d’un WordPress via votre navigateur préféré.

Une fois que les réponses sont enregistrées, le script lance l’installation et le multisite est prêt … en 3 minutes!

Bien sur ce script, pour fonctionner aura besoin de wp-cli.

Command line interface for WordPress | WP-CLI

Command line interface for WordPress | WP-CLI

WP-CLI is the command-line interface for WordPress. You can update plugins, configure multisite installs and much more, without using a web browser.

https://wp-cli.org

Je veux le super script de Séb!

Oui ben il est dispo sur Github 😉

Publier son extension sur le dépot WordPress grâce aux GitHub Actions!

Cet article parlera surement aux développeurs et développeuses d’extension WordPress qui publient sur le dépot WordPress… et ceux qui n’y publient pas pour ne pas avoir à utiliser SVN.

En effet SVN est en quelque sorte l’ancêtre de GIT et de nos jours rare sont les développeurs qui ne sont pas passer à Git.

Github est un service hébergeant des dépots GIT que les dev affectionnent particulièrement et très utilisé dans le monde Open-Source.

Il y a quelques semaines, GitHub a rendu public les Github actions.

OK mais qu’est ce que c’est Github actions?

En simple, c’est une solution permettant d’automatiser des taches lorsqu’une action intervient sur un dépot ou une branche d’un dépot (pull / push…)

C’est là que ca devient interessant!

Auparavant, pour mon exemple personnel, je versionnais mon code sur Github puis je transferrais a la main mes fichiers constituant mon extension WordPress sur le SVN de WordPress.org.

Ca fonctionne… mais c’est long et rébarbatif!

Merci 10Up !

10Up est l’une des grosses agence WordPress dans le monde et ils viennent de publier une action permettant de publier sur le repo WordPress lorsque l’on push sur une branche d’un repo Git, un Tag particulier.

Ce tag sera repris sur le dépot WordPress afin de publier la nouvelle version de votre travail.

On fait comment?

Je ne sais pas si c’ets la maniere de faire dans les règles de l’art comme on dit… mais c’ets la manière que j’utilise… ce sera surement amélioré avec le temps, l’expérience, toussa toussa.

Dans mon projet, je crée un dossier .github notez le point devant puis un sous-dossier workflows.

Créé dans ce dernier dossier un fichier nommé `main.yml`:

Plain Text
main.yml

Committez, puis pushez ce fichier.

Paramétrage coté Github

Rendez vous sur votre dépot Github, dans l’onglet “Actions” vous devriez retrouver l’action créé plus tot.

Github Actions

Nous avions utilisé une variable SVN_PASSWORD et une SVN_USERNAME correspondant aux identifiant SVN nécessaire pour publier sur le repo WordPress. Il va falloir les transmettre a Github pour qu’il puisse se connecter de façon sécurisée.

Rendez vous dans l’onglet “Settings”

Github Actions Settings

Cliquez sur “Add a new secret”

Github Actions Secret

Dans l’input “Name”, saisissez le 1er nom de variable soit “SVN_PASSWORD” et le saisissez le mot de passe de votre compte wp.org dans le textarea “Value”.

Répétez en adaptant pour la variable correspondant à votre mot de passe.

Testez!

Si tout s’est bien passé, la prochaine fois que vous créerez et pusherez un tag Git, votre extension sera automatiquement publiée sur le dépot Officiel WordPress.

Utiliser Lando pour développer ses projets WordPress en local

Je vous ai déjà parlé rapidement de Lando il y a quelques temps…. c’était plus un cri du coeur d’avoir trouvé une solution simple pour utiliser la technologie Docker.

Qu’est ce que Lando ?

Comme je vous expliquais dans mon article précédent, Lando est une sur-couche permettant d’utiliser facilement la technologie Docker.

Pour faire simple, il faut voir Docker comme un outils modulaire ou chaque brique est le composant de votre serveur Web.
Vous aurez donc besoin par exemple, pour faire tourner un WordPress en local d’une brique Apache, d’une brique PHP et d’une brique Mariadb ou Mysql.
Parmi ces différentes briques, il y a des versions différentes. Par exemple PHP7.0 / PHP7.3 .
Pour développer sainement et éviter les mauvaises surprises lors d’une mise en production, il peut être intéressant d’utiliser lors de nos développements les mêmes versions logiciels que celles utilisées par le serveur qui hébergera le site Web au final. Ainsi on réduit les risques de conflits et erreurs.

Le but de Docker est donc de fournir ces différentes briques et de les faire travailler ensemble… sauf que…

Sauf que, comme je le disais dans mon précédent article, il faut paramétrer tout ca… et avoir des connaissances sysadmin que nous n’avons pas tous… heureusement Lando est arrivé

Installer Lando

Le plus dur dans l’installation de Lando est en fait l’installation de Docker qui est assez simple si vous êtes libre comme moi, c’est à dire sur une distribution Linux. C’est un peu plus compliqué si vous êtes prisonnier d’un système privateur tel Windows ou Mac OS. (Pour une fois qu’on a un truc plus simple sous Ubuntu Linux… )

Bref, Docker tourne nativement sous Linux, il faudra ajouter une machine virtuelle pour installer Docker sur Windows ou Mac OS.

Une fois Docker installé, rendez vous sur le site de Lando pour installer la sur-couche qui va mettre en musique tout ça.

Configurer Lando

Je vous disais plus haut que Lando faisait abstraction de la complexité de paramétrage de Docker.

Toute la configuration de votre serveur de développement va tenir en un fichier texte.

Imaginons que nous voulions créer un site WordPress avec pour url https://mon-super-site.lndo.site.

Il suffit de créer un dossier sur votre machine ou vous avez les droits d’écriture et que vous nommeriez du nom que vous voulez: mon-super-site

Dans ce dossier on va ajouter un fichier .lando.yml qui va contenir toute la configuration du serveur de notre site:

Plain Text
.lando.yml

C’est tout! Lando est prêt à fonctionner! et vous prêt à développer!

Décorticons le .lando.yml:

  • Ligne 1: un nom pour votre environnement de développement. Ce nom va servir notament à la construction de l’url de votre projet.
  • Ligne 2: “Recipe” signifie recette en anglais. Lando a mis au point des préconfiguration selon ce que vous aller faire avec. Ici c’est une recette WordPress, elle installera notament wp-cli. Il en existe pour Pantheon, Drupal et bien plus => Lando Recipe
  • Ligne 3: un block config ou vous pouvez spécifiez vos versions logiciel
  • Ligne 7: un block Service ou l’on va lister les services que l’on veut voir fonctionner. ici PhpMyadmin et Mailhog
  • Ligne 16: Composer c’est quand meme pratique quand on travaille dans l’univers PHP.
  • Ligne 19: ce block est facultatif si vous travailler sur un domaine simple. Il peut se révéler très pratique dans le cadre d’un WordPress Multisite en sous-domaine par exemple.
  • Ligne 22: peut etre la partie la plus sympa… effectuer des taches juste après l’import d’une base de donnée… ici on effectue via wp-cli un search & replace pour adapter les url et on désactive l’excellente extension WordPress WP-Rocket car le cache en dev… comment dire 😉

Ce .lando.yml est assez simple et il existe une multitude d’autre configuration et possibilité pour coller au mieux a vos besoin.

Notez que Lando est orienté pour le développement et fortement déconseillé par ses développeur pour une production

Pour lancer une première fois Lando, il convient de faire un `lando rebuild –y`.

A ce moment, il va créer et télécharger ce dont il a besoin. Cette étape peut être longue selon votre connexion web mais elle ne se fera qu’une fois…

Ensuite pour les prochains lancements un `lando start` dans votre terminal positionné dans votre dossier de travail suffira.

Attention la recette WordPress prépare lando techniquement a recevoir WordPress mais n’installe pas WordPress. Vous effectuerez cette étape d’installation comme vous en avez l’habitude ou bien en utilisant ma méthode wp-cli.

J’utilise Local By Flywheel… ca fait pareil!

Hummm chaque solution à ses avantages et ses inconvénients. Lorsque j’ai décidé de tester et finalement d’adopter Lando, Local By Flywheel n’était pas disponible sous Linux. Ce n’est plus le cas depuis l’été 2019.

J’ai testé (trop) rapidement Local By Flywheel et je n’ai pas réussi a faire fonctionner un WP :-/ (notez le trop).

La seule chose que Flywheel apporte pour mon cas est une GUI (Graphical User Interface) alors que Lando… c’est en ligne de commande… mais sincèrement pour faire lando start ou `lando rebuild –y` ? installer une interface qui va forcément utiliser des ressources machine… je n’en ai pas vu l’utilité.