Articles récents

  • La boucle WordPress

    WordPress utilise une boucle pour afficher le contenu d'une page Web, que ce soit une liste d'articles ou encore un article spécifique. Cette boucle devra absolument être présente dans le fichier index.php du thème utilisé ou de son parent. Elle pourra également être présente dans différents fichiers modèles spécialisés pour afficher par exemple les articles d'une catégorie ou les articles archivés.

    Dans cet article, je vous présente le fonctionnement de la boucle WordPress et je vous explique comment vous pouvez la modifier dans votre thème enfant.

    (suite…)
  • Redirection 301, ou comment déplacer une page sans perdre les liens qui pointent sur l’ancien URL

    J'ai rencontré un drôle de problème dernièrement. En fait, ce n'était pas si drôle. J'avais publié un article et je l'avais partagé sur Facebook. Plusieurs personnes l'avaient partagé à leur tour. Selon mes statistiques Google Analytics, environ 200 personnes avaient accédé à cet article en seulement deux jours.

    Un matin, j'ai voulu apporter une petite correction au texte de cet article. Je ne sais pas pourquoi, mais une fois la correction enregistrée, l'article ne s'affichait plus. Mon navigateur me donnait une erreur ERR_TOO_MANY_REDIRECTS. Il semblait donc que la page causait une boucle de redirection.

    (suite…)
  • WordPress : j’obtiens une page blanche, pourquoi ?

    Lorsque vous développez votre site WordPress, les erreurs fatales sont normalement affichées à l'écran et aucun code HTML n'est envoyé au navigateur.

    Si ce comportement est utile pendant le développement du site sur un ordinateur local, ceci devient une source potentielle de danger lorsque le site est en ligne puisque les messages d'erreur PHP peuvent comprendre des informations intéressantes pour les utilisateurs malveillants.

    (suite…)
  • Mise en ligne d’un site WordPress

    Pour créer un site WordPress, certaines personnes installent une coquille WordPress directement en ligne. Il y apportent ensuite les ajustements nécessaires et les résultats sont visibles immédiatement. 

    Pourtant, il est plus sécuritaire de faire un développement en local avec un environnement comme EasyPHP puis de procéder à la mise en ligne une fois que le site est complètement fonctionnel et bien testé.

    Voici donc comment effectuer la mise en ligne d'un site WordPress qui a été développé localement sur votre poste de travail.

    Base de données

    WordPress utilise une base de données MySQL. Pour mettre en ligne cette base de données, certains hébergeurs donnent accès à une interface phpMyAdmin. D'autres hébergeurs vous demandent de téléverser un script SQL et se chargent de mettre la base de données en place. Si vous travaillez sur votre propre serveur, vous pourrez même travailler directement à la ligne de commande si vous le désirez.

    L'hébergeur fournit généralement une interface permettant de créer un usager MySQL n'ayant des droit que pour la base de données de votre site Web. Si ce n'est pas le cas, pensez à changer d'hébergeur car une faille sur un autre site ouvrira la porte vers votre BD...

    Ajustement du script SQL

    Puisque WordPress enregistre les URL absolus dans la BD (ex : <img src="http://127.0.0.1/dossierdusite/wp-content/uploads/2016/10/logo.png" alt="Compagnie XYZ" />), vous devez commencer par ajuster le script SQL en remplaçant toutes les occurences de « http://127.0.0.1/dossierdusite » par « http://nomdedomaine.com ».

    Généralement, le fait de modifier l'URL du site fait en sorte que certaines configurations qui étaient faites sur le site local sont perdues une fois en ligne. Pour éviter ce problème, suivez les instructions données dans l'article « Pourquoi est-ce que je perds les personnalisations de mon thème lors de la mise en ligne ? »

    Ligne de commande

    Si vous avez accès à la ligne de commande sur le serveur, vous faites partie des chanceux ! Il vous sera possible d'importer une base de données à l'aide d'une seule commande. Vous devez cependant vous assurer que le script commence par faire un USE sur la base de données.

    À l'invite de commande sur le serveur, entrez la commande suivante :

    Fenêtre de commande DOS

    mysql -u usagermysql -p < nomscript.sql

    Attention : cette commande est une commande à entrer à l'invite de commande du système d'exploitation (fenêtre de commande DOS) et non à la ligne de commande MySQL.

    phpMyAdmin

    Si votre hébergeur vous donne accès à phpMyAdmin, vous pourrez l'utiliser pour manipuler votre base de données. 

    • Si la base de données n'existe pas, commencez par la créer à l'aide de l'interface fournie.
    • Assurez-vous que la BD soit sélectionnée.
    • Accédez à l'onglet SQL puis faites un copier-coller de votre script SQL.

    Prenez note que si le script SQL est long (ce qui est généralement le cas avec un BD WordPress), il peut y avoir un délai de quelques secondes entre le moment où vous copier votre script dans la fenêtre SQL et le moment où celui-ci apparaît.

    Ajustement du fichier wp-config.php

    Avant d'être copié sur le serveur, le fichier wp-config.php doit être ajusté. Les informations à entrer sont fournies par l'hébergeur.

    Les informations à modifier sont les suivantes :

    • define('DB_NAME', 'nomdelabd');
    • define('DB_USER', 'usagermysql');
    • define('DB_PASSWORD', 'motdepasse');
    • define('DB_HOST', 'nomhotemysql');

    Sécurité

    Si vous avez utilisé des outils de débogage pendant le développement, assurez-vous qu'ils ne génèrent pas d'information compromettante une fois en ligne.

    Vous devez apporter les ajustements suivants :

    • dans wp-config.php : define('WP_DEBUG', false);
    • détruire le fichier www\votresite\wp-content\debug.log
    • aucun fichier .sql ne doit être mis en ligne (ils devraient d'ailleurs tous être dans le dossier dev, qui ne sera pas copié sur le serveur)

    Référencement

    Avant de copier les fichiers sur le serveur, assurez-vous que le fichier robots.txt demande aux robots d'indexer votre site, à l'exception des fichiers et dossiers sensibles.

    Ex :

    Fichier robots.txt

    User-agent: *

    Disallow:  /wp-login.php

    Disallow: /wp-admin/

    Disallow: /wp-includes/

    Si votre client ne souhaite pas que les images qu'il ajoute dans ses pages et ses articles soient indexées sur Google, vous pourriez également ajouter le dossier /wp-contents/uploads/ à cette liste.

    Copie des fichiers WordPress

    Ici encore, la façon de copier les fichiers chez l'hébergeur dépend des outils que l'hébergeur met à votre disposition. Certains fournissent les informations pour que vous accédiez à vos fichiers via un utilitaire FTP. D'autres fournissent un outil intégré.

    Fichiers à exclure

    Il est inutile, voir nuisible, de copier les fichiers suivants sur le serveur :

    • Si vous avez créé un dossier dev contenant différents fichiers utilisés lors du développement, il ne doit absolument pas être copié sur le serveur.
    • Seuls les thèmes et extensions effectivement utilisés doivent être mis en ligne.
    • Fichier license.txt
    • Fichier readme.html
    • Fichier wp-config-sample.php
    • Fichier debug.log
    • Si votre éditeur a créé des fichiers ou des dossiers de travail (ex : dossier .idea avec PhpStorm ou encore fichier .clpprj avec CodeLobster), ils ne doivent pas être copiés sur le serveur.

    Utilitaire FTP

    Il existe de nombreux utilitaires FTP gratuits. Si vous souhaitez mettre vos fichiers en ligne via FTP, vous devez en installer un à votre choix sur votre poste de travail.

    Une fois le client FTP installé, configurez-le à l'aide des informations fournies par votre hébergeur.

    Dans l'interface du client FTP, faites glisser tout le contenu du dossier de votre site Web (wp-admin, wp-content, etc.), à l'exception des fichiers mentionnés plus haut, vers le dossier suggéré par votre hébergeur (ex : public_html, htdocs, etc.).

    Outil intégré de gestion des fichiers

    Si votre hébergeur vous fournit un outil intégré, entrez les informations demandées pour vous authentifier puis copiez tout le contenu du dossier de votre site Web, à l'exception des fichiers mentionnés plus haut, vers le dossier suggéré par votre hébergeur.

    Certains outils permettent de transférer un seul fichier .zip et de le décompresser automatiquement. Attention, cependant, la taille d'un tel fichier est souvent limitée. On a vu des limites allant de 5 Mo sur certains hébergeurs à 200 Mo sur d'autres. Si votre site dépasse la taille maximale allouée, vous devrez créer plusieurs petits fichiers .zip.

    N'oubliez pas de supprimer le fichier .zip du serveur une fois l'opération complétée.

    Permissions sur les fichiers

    Téléversement d'images

    Si vous désirez téléverser des images à l'aide du panneau de configuration WordPress, vous devez vous assurer que le dossier wp-content/uploads dispose des droits d'écriture. Vous pouvez généralement réaliser cette opération à partir de l'interface fournie par votre hébergeur.

    Ajustements futurs à la feuille de style

    Une fois le site en ligne, il est possible de modifier la feuille de style directement dans le tableau de bord à l'aide du menu Apparence / Éditeur. Il faut cependant donner les droits d'écriture sur le fichier wp-content\themes\votretheme\style.css.

    Droits d'écriture sur d'autres dossiers

    Il est préférable de ne pas donner les droits d'écritures sur les autres fichiers et dossiers du site Web à moins d'avoir une raison valable de le faire. En effet, les hackers aiment bien trouver des endroits où déposer leurs fichiers malveillants. Ils le feront généralement à votre insu, sans même porter atteinte à votre site Web. Cependant, il pourraient publier des URL qui débutent par votre nom de domaine mais qui pointent vers des sites pornographiques ou autres. Ouch !

  • Localisation WordPress : ajouter une chaîne dans un fichier .po existant

    Voici un scénario que vous pourriez rencontrer : votre thème est internationalisé mais vous avez ajouté du code contenant de nouvelles chaînes à traduire. Il vous faut donc ajouter une chaîne à un fichier existant.

    Pour y arriver, les étapes sont très semblables à celles réalisées pour créer un fichier .po dans un thème qui n'est pas encore internationalisé.

    (suite…)
  • $this vs &$this

    Lorsque vous programmez dans WordPress, il arrivera tôt ou tard un moment où vous devrez associer une fonction de rappel à un hook.

    Plusieurs syntaxes sont utilisées pour y arriver. Mais laquelle choisir ?

    (suite…)