📄 Guide : Comment remonté de bugs à votre/vos développeur(s) ?

Quand un soucis arrive sur un site, la communication entre développeur et non développeur peu souvent paraître difficile. Le non développeur ne comprend pas ce qu’il se passe et fournit souvent des informations inutilisable pour le développeur
Ex: le site marche pas ou encore le bouton s’affiche pas bien.
Ces éléments ne sont malheureusement pas suffisant pour la résolution du bug créant une frustration des 2 cotés l’utilisateur et coté développeur.

Liste des points importants pour la remonté d’un bug :

  • Expliquer le bug en 2 phrases le comportement du site: 
  • Étapes pour reproduire le bug : 
  • Erreur(s) console  : 
  • OS : 
  • Navigateur  : 
  • Version  : 
  • Screenshot site (optionnel mais peu parfois apporter des indications sur l’origine du bug): 
  • Dimension et résolution de l’écran (si c’est une bug d’affichage/design)

FAQ Remonter de bug  :

Pourquoi est-ce important de remonter ses information ? 

Résoudre un bug sans y être confronté est très difficile. L’origine peut être multiple et multi factoriel (mauvaise connexion, bloquage de certaines ressources nécessaire pour le bon fonctionnement du site, problème de connexion à l’api…).  Le meilleur moyen est d’essayer de reproduire le contexte d’un bug pour identifier l’origine. Sans ces informations la remonter de bug est inutile. 

Comment expliquer un bug en français  ? 

Ce qui est important c’est d’expliquer le contexte et les étapes précédant l’arrivé d’un bug.
Ex : depuis tel connexion internet,  je suis allé sur tel page, j’ai cliqué a tel endroit et le site ne charge plus. 

Comment afficher la console ?
Afficher l’inspecteur

Sur la fenêtre du site clic droit > examiner l’élément (Firefox) ou inspecter(Chrome). Aller dans l’onglet « console »(encadré bleu ci-dessous) faire un screenshot des erreurs. 

remonter de bug console
Quels sont les points important a remonter de la console ? 

Les points rouges qui représentent des erreurs (encadré rouge ci-dessus)
les points jaunes qui représentent des warnings (encadré jaune ci-dessus)

Comment trouver l’OS et la version du navigateur ? 

Soit en allant chercher dans les informations de l’ordinateur et du navigateur. 

Un moyen geeky mais ultra rapide est de taper ces 2 commandes dans la console du navigateur

console.log(navigator.userAgent);
console.log(navigator.oscpu);

et copier coller le résultat dans le rapport d’erreur 

Comment connaitre la dimension et la résolution de l’écran.

visiter un site vous fournissant les informations
Ex : http://whatismyscreenresolution.net/

ou dans la console

screen.availHeight
screen.availWidth 

⌨️ Creer un custom endpoint WordPress REST API

Qu’est ce que l’API REST WordPress

L’Api de WordPress est apparu en 2015 puis a été ajouter au core WordPress en 2016 avec la version 4.7. Cela peut sembler être un petit ajout basique mais l’Api de WordPress ouvre un grand nombre de nouvelles possibilitées sur les façons d’utiliser ce CMS. En effet depuis 2016 un grand nombre d’exemple ont démontré la puissance de cet outil.

Les différents usages de l’API

Du simple filtre AJAX à l’application mobile basé ou encore de nombreux exemples de “headless wordpress” en utilisant des outils comme Next.js ou encore Gatsby. Bref cette API apporte une nouvelle jeunesse à WordPress en offrant de multiples nouvelles façon d’utilise le CMS.

Comment personaliser l’api wordpress ?

Malgré tout ces avantages l’api de WordPress à des inconvénients. Et oui tout n’est pas parfait. Mon principal soucis avec l’Api est la quantité d’informations retourné pour un post ou custom post. Bien souvent vous n’allez pas avoir besoin de toutes ses informations mais uniquement une petit partie et donc dans un soucis de performance je vais vous apprendre a réduire la quantité d’informations et renvoyer uniquement le stricte nécessaire.

Comment créer un custom endpoint WordPress REST API ?

Prenons un exemple concret, mon Portfolio.

Mon portfolio est composé d’un custom post type (CPT) avec 2 customs taxonomies, la technologies utilisé ainsi que type de site web.
J’ai aussi étendu mon CPT à l’aide du plugin ACF pour ajouter des champs tel que le logo, le background utiliser pour la grille.

Après toutes ces explications rentrons dans le coeur du sujet, LE CODE!!!

Tout d’abord il faut ajouter une route personnalisé a L’API,

Pour cela il faut ajouter une action wordpress à l’initialisation de l’API

add_action('rest_api_init', maSuperfonction )

Puis dans votre super fonction ajouter la ou les routes que vous souhaité ajouter a votre api via la fonction register_rest_route().

Cette fonction prend en paramètres :

  • le prefix de l’url de votre route qui doit être unique ('/nom-de-ma-route/v1')
  • l’url de la route que vous souhaité ajouter avec les paramètre url ici j’ajoute la catégorie en paramètre ('project/cat=(?P<cat>[a-z0-9 ,\-]+)')
  • un Array avec La/les methodes que vous souhaité autoriser (‘GET’) ainsi que votre callback ou vous définirez le contenue à renvoyer
function maSuperfonction(){
  register_rest_route('/nom-de-ma-route/v1', 'project/cat=(?P<cat>[a-z0-9 ,\-]+)',[
 'methods' => 'GET',
 'callback' => 'loma_porfolio_data', 
]);
}

Il est temps de définir les données à renvoyer avec la fonction callback ('loma_porfolio_data')

function loma_porfolio_data($cat){
//definition des arguments du loop 
    $args = [
        'numberposts' => 10, 
        'post_type' => 'project', 
        'category' => $cat['cat'] 
    ];
    //définition des variables pour la génération du json
    $posts = get_posts($args);
    $data = []; 
    $i = 0;
    foreach($posts as $post) {
        // recuperation du logo avec ACF
        $logo = get_field('logo',$post->ID );
        // generation de la donnée pour chaque post
        $data[$i]['id'] = $post->ID;
        $data[$i]['title'] = $post->post_title;
        $data[$i]['content'] = $post->post_content; 
        $data[$i]['slug'] = $post->post_name; 
        $data[$i]['logo'] = $logo ; 
        $data[$i]['featured_image']['thumbnail'] = get_the_post_thumbnail_url($post->ID, 'thumbnail'); 
        $data[$i]['featured_image']['medium'] = get_the_post_thumbnail_url($post->ID, 'medium');
        $data[$i]['featured_image']['large'] = get_the_post_thumbnail_url($post->ID, 'large');
        $i++;
    } 
return $data;
}

Voilà vos données sont générer vous pouvez dès à présent tester votre route à l’adresse :
www.exemple.com/wp-json/nom-de-ma-route/v1/project?cat=12

vous recevrez un beau Json de vos posts pour votre catégorie d’id 12 ????

NB : ce code est bien sur à ajouter au fichier function.php mais selon le nombre de route que vous voulez ajouter, je vous invite a isoler le code dans un autre fichier où vous ajouterez toutes vos routes.

⚠️ Attention le type project est spécifique a mon Custom Post Type si vous voulez utiliser cette technique sur les articles remplacer celui ci par posts

❤️Désolé pour l’indentation du code a l’heure ou j’écrit cette article ce site en en cours de finalisation ❤️

🛠 Créer un custom post type sur WordPress

Les custom posts types sont une part entière de WordPress. Il permette d’étendre les fonctionnalité de wordpress en ajoutant un type de contenu.

Par exemple si vous êtes freelance comme moi, votre site va comporter une section Portfolio qui contiendra toutes vos projets de freelance.

Selon votre coeur de métier et l’objectif de votre site web les customs post type (CPT) peuvent symboliser tout type de contenus, des musiques pour un artiste, des logements pour une agences immobilier, en produit pour une boutique en ligne…

Pour ajouter un CPT sur votre site il faut utiliser la fonction register_post_type(), vous trouverez ci dessous la documentation officiel de WordPress que je vous recommande de lire au moins une fois pour visualiser les possibilités existante.

custom post type

Malheureusement générer ce code est long et fastidieux, c’est pour cela que je vous offre gratuitement mon meilleur tip pour générer vos CPT

Le site generatewp.com vous permets en de générer rapidement le code nécessaire pour ajouter un CPT personnalisé a votre site WordPress. Pour cela rien de plus simple rendez vous sur ce lien et remplissez le formulaire, puis copier coller le code dans votre fichier function.php se trouvant a la racine de votre theme. Sauvegarder votre fichier et hop votre CPT apparait par magie dans votre dashboard.

Toujours pas compris ????

Vous trouverez ci dessous un de mes tutos vidéos vous expliquant le process.

🎨 Modifier la palette des couleurs sur Gutenberg

Gutenberg est le nouvelle éditeur de wordpress, il contient plein de nouvelle fonctionnalité et même si au sein de la communauté WordPress les avis reste mitiger après m’être pencher sur la question, j’ai décidé de m’orienter vers cette solution pour mes clients pour plusieurs raisons :

  • Plus design (approche WYSIWYG)
  • Plus rapide (plus de rechargement de page à chaque update)
  • Solution native WordPress

Aujourd’hui nous allons aborder comment modifier les couleurs par défaut de la palette Gutenberg .
Pour cela rien de plus simple ajouter le code-ci dessous dans votre fichier function.php modifier les couleurs avec celle de votre identité graphique puis sauvegarder.

Un fois sauvegarder retourner sur un de vos article et vous verrez votre palette de couleur personnalisé. Cela peu sembler inutile mais cela se révèle très pratique et bien plus rapide que jouer en permanence avec les couleurs hexa de votre identité graphique.

Voila le résulat ????❤️ :

🗞 Pour ou contre le nouvel éditeur WordPress Gutenberg

“Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tem.”

💻 Enfin mon propre site web

Après bientôt 3 ans de freelance, je me lance enfin dans mon portfolio. oui cela peut paraître bizarre pour un freelance en remote mais j’ai la chance de récupérer la majorité de mes clients par le bouche à oreille et/ou par recommandation.

Alors pourquoi ce site web?

Pour plusieurs raisons :

La première, j’arrive a un moment de ma carrière de freelance ou je souhaite améliorer mes conditions de travail, en effet être freelance demande pas mal de concession (surtout en remote).
Par exemple lors de ma première année j’acceptait tout type de clients (type projet peu stimulant, petit budget) par peur de ne pas avoir le clients suivant.
Aujourd’hui je suis arrivé a un stade de maturation après avoir travailler avec des entrepreneurs, des indépendants, des agences, des start-up des associations pour des projets très variés allant de la template l’emailing, au site vitrine, application web…