Security Token Invalid dans les commentaires WordPress

Je ne sais pas depuis combien de temps ce problème est en place sur mon blog mais il était impossible de poster des commentaires. Un message Security Token Invalid apparaissait à la fin et le commentaire n’était pas envoyé.

Ce problème est apparemment dû à une incompatibilité entre le module de commentaires JetPack et le plugin d’antispam Antispam-Bee. La quantité de spams qui inondent mes commentaires a drastiquement chuté depuis plus de 6 mois et je ne pense pas réellement qu’Antispam-Bee en était la cause. J’ai donc tout simplement décidé de le supprimer et mes commentaires sont de nouveaux disponibles sans pour autant recevoir plus de spams qu’avant.

N’hésitez donc plus à me poser des questions sur les sujets traités ou à les compléter.

Nettoyer sa base de données WordPress

WordPress a l’avantage lorsque l’on travaille à plusieurs de garder les historiques de modifications d’articles ou de pages qui sont effectuées. Ceci permet de revenir en arrière lorsqu’une modification n’aurait pas dû être faite. Etant le seul contributeur de mon blog, cette fonctionnalité ne me sert malheureusement à rien. J’avais déjà parlé d’un plugin qui permet de désactiver l’historique des modifications. WordPress génère beaucoup d’autres fichiers dans la base de données qui peuvent finir par prendre beaucoup de place.

Heureusement, le plugin WP Clean Up permet de corriger ce problème et d’éliminer de la base de données toutes les entrées générées automatiquement et qui ne servent pas forcément. Il nettoie ainsi sans aucun soucis les révisions, les brouillons ou les auto-draft qui subsistent en base et qui finissent par prendre beaucoup de place inutilement.

Améliorer sa barre d’édition WordPress

Les options de la barre d’édition de WordPress sont assez succinctes de base et ne permettent pas de faire beaucoup plus que le minimum. Cependant, comme d’habitude avec WordPress, il existe des plugins qui permettent de booster un peu ses options sans avoir à taper de code dans la partie HTML des articles.

Celui que j’ai testé et adopté pour ma part est TinyMCE Advanced. J’en avais eu besoin au tout début afin de pouvoir intégrer un tableau dans un article WordPress mais il permet vraiment de faire énormément plus. Il est possible de rajouter des émoticônes, d’intégrer des vidéos, des tableaux, des symboles, …

Il est facilement modulaire et on peut aisément choisir les options que l’on souhaite rajouter à la barre afin de ne pas risquer de la surcharger.

Vous pourrez aussi trouver plus d’informations sur le site officielle de TinyMCE Advanced.

Changement de serveur 12-03-2013

J’ai des tonnes d’articles en retard et beaucoup de travail pour l’école donc je vais tenter de rédiger tout ça mais ça tarde un peu.

J’ai fait la migration hier de mon ancien serveur qui était chez ikoula sur un serveur que nous nous partageons avec des amis. Une VM chacun et des IP failover pour tous comme ça on reste tous indépendants et on a la possibilité de faire ce qu’on veut sans risquer de gêner les autres. Nous avons ainsi des machines bien plus puissantes que ce que nous aurions pu avoir pour le même prix. J’ai dû conserver mon nom de domaine chez ikoula car il est impossible de faire un transfert de domaine moins de 60 jours avant l’expiration de l’abonnement. Je le saurais pour la prochaine fois. La gestion des nom de domaine chez ikoula est très bien foutue (contrairement à 1&1 par exemple) donc ce n’est pas très dérangeant même s’ils sont plus chers que d’autres acteurs du marché. De manière générale d’ailleurs, même si la qualité des services est irréprochable, ikoula reste plus cher que la concurrence.

Un atout que possède notamment OVH est l’anonymisation des whois que ne propose pas gratuitement ikoula. Même si ce n’est pas très grave, c’est toujours rassurant de ne pas voir ses informations personnelles traîner partout en invoquant une simple commande.

Du coup normalement tout est fonctionnel (en tout cas pour la partie web). Si vous voyez des problèmes de liens cassés ou autres, n’hésitez pas à m’en faire part.

J’ai appliqué de nouvelles configurations à certains programmes que j’utilisais auparavant donc je ferais aussi des articles dans, j’espère, pas très longtemps sur les nouveaux choix que j’ai fait.

Créer un mode maintenance sur WordPress

Lors d’une mise à jour de plugins WordPress ou même du CMS complet, une ligne apparaît stipulant le passage du site en mode maintenance et une autre à la fin stipulant la sortie. Qu’est ce que ce mode maintenance ?

Le mode maintenance est un mode durant lequel le site indique être inaccessible pour cause de maintenance. Ceci permet, lors d’une mise à jour, d’éviter tout bug dû à du trafic et d’indiquer aux visiteurs que des travaux sont en cours sur le site au lieu de risquer d’afficher des messages d’erreurs.

Pour des travaux plus longs comme une adaptation de template, l’installation d’un nouveau plugin lourd, un ré-agencement des articles, … , il peut être intéressant de passer soit même le site en mode maintenance.

Pour ce faire, rien de plus simple, il suffit de créer un fichier .maintenance à la racine du site dans lequel on mettra le code :

<?php $upgrading = time(); ?>

La page de maintenance est personnalisable. Il suffit, en plus du fichier .maintenance précédemment ajouté, de créer un fichier maintenance.php dans le dossier wp-content, présent à la racine de site, qui contiendra le contenu à afficher en cas de présence du fichier .maintenance

Pour les personnes frileuses des modifications à la main, comme d’habitude avec WordPress, il existe des plugins comme Maintenance, Ultimate maintenance mode ou Maintenance Mode Notify qui proposent différentes options et réglages.

Enfin, il arrive, après une mise à jour d’un plugin ou de WordPress, que WordPress reste bloqué en mode maintenance. Pour corriger le problème, rien de plus simple, il suffit de supprimer le fichier .maintenance à la racine du site pour retrouver son site comme avant.

Gestion des droits utilisateurs WordPress

WordPress joui d’un système de droits assez fin et bien pensé. En effet, un certain nombre de profils d’utilisateurs existent déjà avec des possibilités différentes et il est aisé de jongler entre eux pour donner l’autorisation de réaliser un certain nombre de tâches, et en empêcher d’autres, à chaque compte.

Cependant, il n’est pas facile de modifier ces droits de base ou de créer de nouveau profils correspondant à un rôle précis attribué à un utilisateur. Comme nous sommes sur WordPress, un plugin existe pour résoudre ce facétieux problème. En l’occurrence, il s’agit de Capability Manager Enhanced.

Celui ci permet non seulement de créer de nouveaux profils totalement personnalisés en plus des 5 existants mais permet aussi de modifier très finement les droits accordés à chaque catégorie. On peut ainsi imaginer créer un groupe qui a le droit d’ajouter du contenu dans les médias téléchargés mais jamais d’en enlever. On peut aussi penser à un designer qu’on autorise à modifier l’intégralité du thème du site sans jamais pouvoir modifier les articles ou gérer des utilisateurs.

Un plugin pratique, selon les besoins, même si de manière générale, pour une utilisation de type blog conventionnelle, les profils Abonné, Administrateur, Auteur, ContributeurÉditeur sont largement suffisants.

Problème d’arrêt du plugin WordPress Move

Un problème auquel j’ai été confronté et dont je n’ai pas trouvé la solution sur internet m’est arrivé récemment. Le plugin WordPress Move dont j’ai déjà parlé et que j’utilise pour sauvegarder régulièrement mon blog était devenu inopérant et affichait une page blanche. Pensant juste à un problème d’affichage, j’ai tenté de le laisser tourner une bonne heure voir si quelque chose changeait mais il s’avérait que non. Les archives avaient la même taille et ne grossissaient pas.

J’ai fini par trouver la solution lorsque j’ai enlevé un dossier de partage que j’avais créé à la racine du blog pour passer une vidéo que j’avais faite pour un concours. La vidéo pesait dans les 60 Mo. Je ne sais donc pas exactement pourquoi le plugin s’arrête au lieu de tenter de comprimer la vidéo dans les backup mais tout fichier trop gros dans le répertoire du site entraîne cette coupure brutale dans la sauvegarde.

La solution est donc d’enlever tous les plus gros fichiers uns par uns jusqu’à ce que la sauvegarde s’effectue convenablement.

Une solution, que j’avais trouvé sur internet pour un cas similaire mais qui n’était pas le mien, consistait à changer dans les réglages la « Chunk Size » à savoir la taille maximal de chaque archive. Là encore le problème était dû à un problème de compression.

Il doit être possible de régler ces deux problèmes de la même manière en modifiant les paramètres du serveur web et dont certains doivent limiter les ressources attribuées à la compression. Je ne me suis cependant pas penché sur la question mes sauvegardes ayant pu reprendre sans encombres.

Créer une pagination sur WordPress

Je trouve la navigation de base sur WordPress assez fouillis  En effet, passer de page en page pour retrouver un article n’est pas des plus pratique et je voulais pouvoir remonter de plusieurs pages d’un coup sans avoir à modifier l’adresse dans la barre du navigateur.

Ainsi, esprit WordPress oblige, j’ai cherché un plugin qui me permettrait ça. J’en ai trouvé deux que j’ai jugé digne d’intérêt. WP-Paginate et Simple Pagination. Tous les deux facilement configurables, l’étape la plus embêtante était de le intégrer dans la page.

Pour ce faire, il faut aller modifier le style des pages dans le menu Appearance -> Editor de WordPress ou à la main directement dans les fichiers. L’emplacement à modifier va dépendre du thème utilisé. Utilisant le thème TwentyEleven, la fonction d’affichage se trouve dans le fichier functions.php dans la fonction twentyeleven_content_nav. D’autres thèmes utilisent un fichier loop.php.

Afin de ne pas créer de bug si le plugin se trouvait désactivé pour une raison ou une autre, il suffit de rajouter une vérification de présence de la fonction au lieu de remplacer l’affichage. On aura ainsi une fonction qui ressemblera à ceci :

function twentyeleven_content_nav( $nav_id ) {
    global $wp_query;

    if (function_exists('<FONCTION DU PLUGIN>')) {
        <FONCTION DU PLUGIN>();
    }
    else {
        if ( $wp_query->max_num_pages > 1 ) : ?>
            <nav id="<?php echo $nav_id; ?>">
                <h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
                <div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyeleven' ) ); ?></div>
                <div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyeleven' ) ); ?></div>
            </nav><!-- #nav-above -->
        <?php endif;
    }
}

La <FONCTION DU PLUGIN> peut être : wp_simple_pagination pour Simple Pagination ou wp_paginate pour WP-Paginate.

Les deux plugins permettent de faire la même chose avec les commentaires mais cette fonctionnalité m’intéresse beaucoup moins donc je ne l’ai pas mise en place. La procédure reste cependant la même mais dans le fichier comments.php autour des deux lignes contenant les fonctions previous_comments_link() et next_comments_link().

Ma préférence va actuellement à Simple Pagination pour son template de base qui s’intègre mieux dans ma page sans avoir à la retoucher mais les deux barres de navigation sont personnalisables.

Nouvelle direction de ce blog

Un entretien de stage il y a quelques mois m’a fait prendre conscience qu’un blog peut aussi être une plateforme publique des compétences que l’on acquiert et maitrise au fur et à mesure des années. Ainsi, lorsque l’un des recruteurs m’a demandé pourquoi je n’avais rien concernant le développement (je postulais pour un poste en développement), je me suis retrouvé con à lui dire que je ne le mettais pas sur ce blog et qu’un autre allait voir le jour pour cela.

Après réflexion, rien ne m’empêche d’intégrer la partie développement dans ce blog et même au contraire, cela permet de centraliser l’intégralité de mes acquis au même endroit. Je pensais qu’il serait plus pratique d’isoler le développement afin de suivre l’évolution de tel ou tel projet sans qu’il soit mélanger au reste de mes recherches, mais finalement, les tags permettent facilement de séparer les contenus.

Je marquerais ainsi aussi désormais les différentes trouvailles / architectures / plug-ins / configurations / fonctions que je trouverais concernant le développement dans tous les langages que je rencontre / utilise.

Enfin, je mettrais aussi un CV en version Light pour que les recruteurs éventuels qui atterriraient sur mon site puissent savoir que je suis la personne qu’il leur faut. ^^

Changer le mot de passe d’un utilisateur MySQL

Je viens juste de me retrouver dans le cas où j’avais oublié le mot de passe d’un de mes utilisateur MySQL. Il fallait donc que je puisse soit le retrouver, mais je n’ai pas le temps de m’amuser à faire du brute force sur des hash surtout que je sais que le mot de passe que j’ai mis est extrêmement long, soit le changer.

Vu que l’utilisateur root n’est pas là que pour créer des BDD et des utilisateurs, il faut bien s’en servir. On va donc commencer par se connecter avec cet utilisateur à l’aide de la commande :

mysql -u root -p

Une fois la connexion effectuée, on va utiliser la base de donnée qui sert à la gestion de MySQL à savoir : mysql …

USE mysql;

On procède ensuite au changement de mot de passe à l’aide de la commande UPDATE :

UPDATE user SET password=PASSWORD('<NOUVEAU_MOT_DE_PASSE>') WHERE user='<NOM_DE_L_UTILISATEUR_DONT_ON_VEUT_CHANGER_LE_MDP>';

On applique ensuite les changement à l’aide de la commande :

FLUSH PRIVILEGES;

D’autres manières de faire existent dans la documentation officielle en fonction des versions/besoins.