Algolia, un moteur de recherche très efficace pour WordPress

Vous ne le savez peut-être pas, mais la recherche de base est très mauvaise sur WordPress. Le moteur de recherche intégré se contente de piocher dans les titres et le corps des articles, il ignore totalement les métadonnées (catégories, tags, taxonomies personnalisées, etc.). Pire, les résultats de recherche sont affichés par ordre de publication et non par pertinence. Les articles les plus récents sont ainsi systématiquement mis en avant, ce qui n’a aucun sens sur mon blog personnel, composé essentiellement de critiques de films et séries et d’avis sur des restaurants.

De ce fait, cela fait des années que j’utilise une extension qui améliore le moteur de recherche par défaut. J’ai longtemps utilisé Relevanssi, qui a surtout l’avantage d’être gratuit et qui est très complet, mais aussi très lent. Depuis plus de trois ans, j’utilisais SearchWP, un concurrent payant, tout aussi complet et beaucoup plus rapide. J’ai eu l’occasion d’en parler ici-même lorsque je l’ai déployé et je n’ai que des bonnes choses à dire à son sujet.

searchwp

Malheureusement, ce blog ne rapporte pas d’argent et la recherche n’est pas assez utilisée pour justifier la dépense. La recherche instantanée que j’ai mise en place début 2014 suffit certainement à la majorité des lecteurs… elle me suffit d’ailleurs le plus souvent. Ajoutons que le tarif d’une licence pour SearchWP a nettement augmenté au fil des années et il faut désormais compter 79 $ par an. C’est totalement inimaginable pour moi et je me suis mis en tête de chercher une solution gratuite.

Puisque j’héberge désormais mon blog sur un VPS géré par mes soins (mon guide pour transférer un blog WordPress est toujours disponible à cette adresse), je pouvais essayer la solution ElasticSearch. Ce moteur de recherche est très utilisée, c’est même celui qu’exploite WordPress.com, le réseau de sites hébergés d’Automatic qui est utilisé pour ce blog technique. L’installation était simple, la configuration beaucoup moins et je n’ai jamais réussi à obtenir de bons résultats.

C’est alors que j’ai testé Algolia et j’ai été bluffé par la qualité des résultats sans aucun réglage de ma part.

algolia-logo-light.png

Lire la suite

Ajoutez un petit peu de couleurs à vos articles

Si le thème de votre site n’est pas marqué par une couleur dominante, comme c’est le cas pour mon blog, vous pouvez ajouter une petite touche de couleur à chaque article en suivant cette astuce. L’idée est de partir de l’image à la une pour déterminer une teinte dominante et utiliser cette teinte dans le thème. Pour ma part, je l’utilise sur les liens au survol et sur les boutons de partage et les métadonnées en bas de chaque article.

Voici ce que cela donne avec trois exemples différents :

haut.jpg

Lire la suite

Black Friday : les VPS OVH à moitié prix

Je ne vais pas lister toutes les promotions de Black Friday intéressantes, mais uniquement signaler une offre dont je vais bénéficier pour mon blog personnel.

Chez OVH, les VPS sont à moitié prix toute la journée. Ce qui veut dire que les tarifs commencent à 1,8 € par mois TTC pour l’option la plus petite. C’est celle que j’utilise depuis un an sur mon blog et à part la limite à 10 Go de stockage qui me pose problème, je n’ai pas à m’en plaindre.

black-Friday-ovh.jpg

 

Pour moins de 2 € par mois et en installant correctement votre blog WordPress (suivez le guide si vous n’avez aucune idée sur la méthode à suivre), vous aurez un serveur plus rapide et moins cher qu’un hébergement mutualisé. Pour ma part, je vais profiter de cette offre pour passer à l’offre supérieure, facturée avec la promotion à 3,6 € TTC par mois.

Je n’ai pas besoin de la puissance supplémentaire, mais l’espace de stockage augmenté sera confortable. Et puisque c’est le même prix que l’offre de base, je ne vais pas me priver de ce confort supplémentaire…

Attention, toutes ces offres impliquement un engagement de 12 mois : vous payez en fait une seule fois, mais pour un an d’hébergement. J’ajoute que toutes les offres de VPS sont en promotion, y compris les plus coûteuses. Il y a aussi des noms de domaine à 1,2 € la première année, des serveurs dédiés… 
Mise à jour : finalement, OVH a maintenu l’opération tout le week-end. Il n’est pas trop tard pour profiter des offres et même si la boutique est parfois frustrante tant elle est mal pensée et bugguée, ces offres restent excellentes. Pour moins de 30 € par an, vous aurez de quoi faire tourner un blog WordPress de façon très confortable… difficile à battre. 

Guide : transférer un blog WordPress sur un VPS

Préambule

Pendant très longtemps, on n’avait que deux choix quand on voulait héberger un site : acheter ou louer son propre serveur, ou utiliser une offre d’hébergement mutualisé. La première solution est plus souple, mais aussi beaucoup plus coûteuse et complexe. La deuxième est moins chère, mais souvent plus contraignante et généralement moins performante.

168925884_d8cefb7e4f_o.jpg

Des serveurs dédiés (Photo Tim Dorr — CC BY-SA 2.0)

Depuis quelques années, une troisième voie s’est formée avec les VPS, les « Virtual Private Servers », des serveurs dédiés virtuels en français. C’est un serveur dédié, dans le sens où vous gardez un contrôle total sur l’installation, du système d’exploitation (Linux en général) au moteur qui alimentera le site. Mais il est virtuel, puisque chaque VPS ne correspond pas à une machine physique : c’est ce qui explique que le coût est bien plus faible. Alors qu’un serveur dédié coûte en général plusieurs dizaine d’euros par mois au minimum, un VPS est facturé moins de 5 € pour les premières offres.
Ces offres sont si bon marché, qu’elles concurrencent même les offres mutualisées, traditionnellement les moins chères de toutes. C’est pourquoi héberger son blog sur un VPS peut être si intéressant. Néanmoins, c’est aussi plus exigeant, puisqu’il faut gérer le serveur à l’aide d’un terminal : même si on peut installer une interface d’administration, comme cPanel, il faut en général payer un supplément, et on perd le plus gros intérêt des serveurs virtuels, à savoir leur performance.

Pour autant, héberger un blog WordPress sur un VPS n’est pas si compliqué que cela en a l’air. Surtout en s’aidant d’un outil comme ServerPilot, un assistant qui vient configurer le VPS et surtout à le maintenir en état de marche. Une fois configuré, le serveur est maintenu à jour et sécurisé, avec la bonne configuration pour éviter les hacks. Une fois le transfert du blog terminé, vous aurez normalement la même charge de travail qu’avec un hébergement.

Lire la suite

WordPress exploite la police de votre système

WordPress 4.6 est disponible cette semaine et même si cette mise à jour n’apporte rien de majeur, elle change quand même l’aspect de l’administration. Les éléments sont toujours à la même place, il n’y a pas de nouvelles rubriques et tout sera là où vous aurez l’habitude, mais vous noterez peut-être une différence malgré tout. Avec cette version, la police utilisée dans l’administration n’est plus Open Sans comme avant, mais la police par défaut de votre système.

Voici à quoi cela ressemble sur un Mac :

avant-apres-admin.jpg

Accueil de l’administration sur Mac, avant et après la mise à jour (cliquez pour mieux voir la différence).

avant-apres-liste.jpg

Liste d’articles avant et après la mise à jour (pareil).

Lire la suite

Articles en avant et pagination

Je suis tombé sur un oubli étrange de WordPress : on peut aisément mettre en avant un article, qui sera alors affiché au-dessus des autres triés normalement par ordre chronologique, mais la pagination n’en tient pas compte. Si vous avez configuré votre blog pour afficher 10 articles par page et que vous en mettez un autre en avant, vous aurez 11 articles sur la page d’accueil et les autres pages seront aussi décalées.

Quand on utilise une seule boucle pour afficher les articles sur la page d’accueil, WordPress devrait prendre en compte ceux en avant, et afficher toujours le même nombre d’articles réglés dans les préférences. Ce n’est pas le cas par défaut, mais il existe une solution assez simple : utiliser l’action pre_gest_posts pour modifier les fonctions de base et calculer diffémment le nombre d’articles à afficher et la pagination.

Cela vous semble compliqué ? Il suffit pourtant de coller ce code dans le fichier functions.php  de votre thème et ce sera automatique !

// Prise en charge des sticky posts et pagination corrigée (source http://wordpress.stackexchange.com/questions/180005/include-sticky-post-in-page-posts-count/180021#180021)
add_action( 'pre_get_posts', function ( $q ) 
{

    if ( $q->is_home() ) {

        $count_stickies = count( get_option( 'sticky_posts' ) );
        $ppp = get_option( 'posts_per_page' );
        $offset = ( $count_stickies <= $ppp ) ? ( $ppp - ( $ppp - $count_stickies ) ) : $ppp;

        if (!$q->is_paged()) {
          $q->set('posts_per_page', ( $ppp - $offset ));
        } else {
          $offset = ( ($q->query_vars['paged']-1) * $ppp ) - $offset;
          $q->set('posts_per_page',$ppp);
          $q->set('offset',$offset);
        }

    }

});    

add_filter( 'found_posts', function ( $found_posts, $q ) 
{

    if( $q->is_home() ) {

        $count_stickies = count( get_option( 'sticky_posts' ) );
        $ppp = get_option( 'posts_per_page' );
        $offset = ( $count_stickies <= $ppp ) ? ( $ppp - ( $ppp - $count_stickies ) ) : $ppp;        

        $found_posts = $found_posts + $offset;
    }
    return $found_posts;

}, 10, 2 ); 

Par rapport au code original déniché sur StackExhange, j’ai retiré la condition is_main_query, puisque cela ne fonctionnait pas dans mon cas. Comme je n’ai qu’une seule requête sur la page d’accueil de mon blog, ce n’est pas très grave, mais vous devrez peut-être ajuster ce paramètre.

Ajoutons que cela ne fonctionne que pour la page d’accueil, si vous voulez la même chose sur toutes les pages d’archive, il faudra également retiré la condition is_home.

Changer l’URL d’un site avec WP-CLI

WP-CLI nécessite un accès SSH au serveur, c’est-à-dire un accès via un terminal. C’est le cas quand vous gérez votre propre serveur (dédié ou VPS), mais aussi chez certains hébergeurs mutualisés1. Si vous avez cela, n’hésitez pas et installez cette extension très pratique pour plein de petites choses qui sont pénibles à utiliser avec une interface, mais très simples au contraire en ligne de commande.

Je l’utilise essentiellement pour gérer la base de données. De temps en temps, je crée une sauvegarde en tapant uniquement wp dp export et j’obtiens dans la foulée un fichier SQL que je récupère ensuite sur mon ordinateur et que je stocke sur un autre serveur. Autre commande intéressante : wp db optimize qui, comme son nom l’indique, active les fonctions d’optimisation indispensables de temps à autre.

Mais le cas le plus utile pour moi jusque-là a été le changement de toutes les occurences de l’ancienne URL quand j’ai passé mon blog personnel en HTTPS. En utilisant une seule commande, WP-CLI a cherché dans la base de données toutes les fois où l’ancienne adresse était présente et l’a remplacé par la nouvelle. Le tout est fait proprement, sans risque  de casser quoi que ce soit, et surtout en évitant les pièges habituels en la matière (quand on le fait avec une requête SQL classique, on peut passer à côté de certaines occurrences, ou casser quelque chose).

wpcli-searchreplace.png
Si vous pouvez installer WP-CLI et que vous voulez changer un élément dans la base de données (ce n’est pas forcément une URL d’ailleurs, tout est possible), voici ce qu’il faut faire :

wp dp export
wp search-replace 'texte original' 'texte final' --skip-columns=guid

La première ligne vous assure une solution de replis en cas d’erreur, la deuxième opère les changements. En retour, vous aurez la liste de tout ce qui a été modifié dans la base de données, une première vérification indispensable avant d’ouvrir le site pour s’assurer que tout est correct.

Pour en savoir plus sur cette commande et les différentes options proposées, la documentation officielle est un incontournable…

Rappel : il ne suffit pas de changer la base de données si on veut changer l’URL d’un blog WordPress. Il faut aussi mettre à jour l’adresse dans les options, comme c’est expliqué dans le Codex, la documentation officielle du CMS.


  1. En France, Web4All et MonArobase proposent cette fonction. 

Désactiver les pages dédiées aux médias de WordPress

Par défaut, WordPress permet d’afficher chaque média mis en ligne sur le blog sur une page dédiée. Ce qui est affiché varie en fonction du thème, mais on retrouve général le nom du média et le fichier lui-même est affiché juste en-dessous. Parfois, on a même des commentaires associés à la pièce-jointe.

attachment-template.png

Si, comme moi, vous ne voulez pas de cette fonction, la solution est très simple. Il suffit de modifier le template attachment présent dans tous les thèmes en remplaçant tout le contenu par cette ligne unique :

wp_redirect(get_permalink($post-&gt;post_parent));

Le code est extrêmement simple : il renvoie à l’article associé à la pièce-jointe. En théorie, si un visiteur tombe sur l’ancienne page dédiée à une image, il verra la photo dans son contexte, puisqu’il sera automatiquement redirigé vers l’article qui contient l’image. Simple, mais efficace !

Bonus : WordPress permet de changer de modèle en fonction de la pièce-jointe. On peut ainsi garder le template générique d’origine, mais créer un fichier image.php avec la ligne donnée plus haut pour transférer les visiteurs uniquement sur les photos, mais pas les fichiers PDF. Par exemple.

Comme d’habitude, vous pouvez voir l’astuce en action sur mon blog personnel à cette adresse.

Les VPS deviennent vraiment intéressants

OVH, le plus grand hébergeur français, a augmenté les tarifs de ses offres mutualisées. Les tarifs commencent désormais à 3,6 € par mois pour l’offre « Perso » et l’offre « Pro » en milieu de gamme nécessite de payer 7,2 € par mois. Des tarifs justifiés par la nécessité d’embaucher plus de personnels pour le support technique, ce qui n’a rien d’anormal et il faut reconnaître que l’hébergeur a fait de gros progrès sur ce point.

ovh-mutu.png

Les tarifs indiqués par OVH sont hors taxe.

Cette augmentation de tarifs améliore, en contrepartie, l’intérêt des VPS proposés par OVH. Ces serveurs virtuels s’approchent des serveurs dédiés que les sites les plus exigeants utilisent. On partage toujours un matériel, comme avec les offres mutualisées, mais on a une maîtrise totale sur le serveur et un accès mieux garanti aux ressources.

Désormais, les tarifs des VPS d’entrée de gamme d’OVH sont identiques aux offres mutualisées de l’hébergeur. La première offre est ainsi facturée 3,6 € par mois et pour bien des sites, c’est une meilleure affaire à mon avis. Mais, car il y  a un mais, et un gros : pour utiliser un VPS, il faut manier le terminal et ne pas prendre peur face à des lignes de commande. Si vous n’êtes pas à l’aise avec cet outil, il sera préférable d’en rester à une offre classique.

ovh-vps.png

Lire la suite

Combien de mots avez-vous publié ?

J’aime bien, par pure curiosité, savoir comment j’écris sur mon blog personnel. Grâce à WP Word Count, une extension gratuite que j’utilise depuis des années, je peux savoir combien de mots j’ai écrit et publié, mois après mois. L’extension donne aussi la moyenne par article et j’ai reporté systématiquement ces deux informations dans un tableur.

Ce qui permet d’avoir des graphiques comme ceux-là :

volume-publication.png rythme-publication.png frequence-publication.png longueur-articles.png

Le plugin ne fait pas ce genre de graphique, malheureusement, mais il affiche le nombre de mots publiés chaque mois, ainsi que le palmarès des dix articles les plus longs. Ce n’est pas indispensable, loin de là même, mais j’aime bien avoir cette information sous la main, notamment pour essayer de ne pas faire trop long. Je surveille ainsi le dernier graphique de la liste et la courbe rouge, pour limiter son ascension.

J’ajoute que l’extension n’a pas été mise à jour depuis très longtemps, mais qu’elle fonctionne parfaitement (elle ne gère probablement pas les custom post néanmoins). Elle fait partie de celles qui sont en place sur mon blog depuis quasiment les débuts… Elle a donc enregistré les 1 350 000 publiés à ce jour, un chiffre qui fait tourner la tête !

nombre.png

L’extension affiche le nombre de mots publiés depuis la création du blog, ainsi que la moyenne générale.