Tag : php

[WordPress] Retrouver les images à la une sur vos anciens articles

Je ne sais pas si chez vous c’est pareil mais lors d’une mise à jour de mes blogs (la version 3.4 si je me souviens bien) il s’avère que ma gestion des images à la une a été un peu perturbée. Avant je fonctionnais avec des plugins pour « ajouter » automatiquement des images à la une aux articles qui n’en avaient pas car cette fonctionnalité n’est arrivée qu’à la version 3 de wordpress. Cela fonctionnait très bien jusqu’au passage à WordPress 3.4.

Après de longues recherches sur les forums dédiés je n’ai pas trouvé de solution miracle à la disparition des mes images à la une pour tous mes articles avant décembre 2009. Alors j’ai essayé de comprendre ce qu’il se passait… Direction phpMyAdmin pour visiter les bases de données du blog pour voir ce qu’il se passe avec les « featured images ». En regardant la table wp_postmeta j’ai constaté que la clé « _thumbnail_id » comportait des valeurs inexistantes pour tous les articles datés d’avant décembre 2009, comme si wordpress avait volontairement renseigné ce champ avec une valeur nulle. Pour information cette valeur doit être le « post_id » de l’image utilisée en « featured image ». Alors plutôt que d’attendre une solution miracle je ne suis dit que l’on pouvait peut être affecter directement l’id d’une image utilisée dans l’article afin d’avoir une vrai « featured image ».

Voici donc comment j’ai procédé : je sélectionne tous les champs avec la clé _thumbnail_id, puis je recherche dans la table wp_posts s’il y a des images associées à l’article dont nous avons récupéré l’identifiant, si oui je prend la première image, ensuite il ne reste plus qu’à modifier la table wp_postmeta pour renseigner le bon « id » de l’image que l’on souhaite utiliser comme image à la une.

Une fois cette modification faite, vous pouvez faire une passe avec un plugin comme « Auto Post Thumbnail » pour regénéré les vignettes, cela ne fait pas de mal et corrigera quelques bugs d’affichage.

Pour les plus motivés, vous pouvez retrouver ce bout de code sur github, libre à vous de l’améliorer bien entendu! Pour les autres, désolé cet article est un peu pointu!


Générer automatiquement des miniatures sur la page d’accueil de son blog wordpress

On le sait tous les images ont de l’importance pour le lecteur qui aura peut être envie de poursuivre la lecture de votre blog en y voyant une belle illustration. Par principe illustrer ses articles est quelque chose à faire le plus souvent possible, mais quid de la page d’accueil qui nécessite tout autant d’attention que la page d’article? Voici un petit tutoriel qui va vous présenter comment faire pour afficher une miniature de la première image de l’article, le tout sans avoir besoin de plugin!

vignette sur la homepage de blog4auto.fr
vignette sur la homepage de blog4auto.fr

Premièrement il va falloir éditer la page appelée function.php qui se trouve dans votre thème mais aussi dans l’éditeur de thème dans l’interface d’administration de votre blog « Appearance/Editor/Function.php ». A la fin de ce fichier il va falloir coller ce bout de code :

// Recherche de la premiere image
function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('//i', $post->post_content, $matches);
$first_img = $matches [1] [0];
// Si zero image
if(empty($first_img)){
$first_img = "";
}
$first_img = str_replace('http://www.domaine.fr', '', $first_img);
return $first_img;
}

Simplement l’objectif de cette fonction est de retrouver la première image de votre article et de récupérer l’url de cette dernière. S’il n’y a pas d’image vous pouvez afficher une image par défaut $first_img = "image/defaut.jpg"; mais dans ce cas je préfère ne rien afficher.

Donc on a maintenant grâce à cette fonction les adresses des premières images de chaque article, il faut donc générer la miniature sinon vous allez avoir les images dans la taille utilisée dans l’article. Pour générer les miniatures à une taille spécifique il va falloir utiliser un petit script qui va travailler à votre place, celui-ci s’appelle timthumb, ce script en php va donc prendre votre image et la recouper à la taille désirée. Vous pouvez télécharger la version disponible sur Google Code ou bien prendre ma version qui comporte quelques modifications (génération de thumb si l’image est trop petite notamment).

Pour installer ce script vous allez devoir créer un dossier « scripts » dans le répertoire de votre thème de votre blog mondomaine.fr/wp-content/themes/montheme/script et un répertoire « cache » pour stocker les images mondomaine.fr/wp-content/themes/montheme/script/cache, ces deux répertoires doivent être en 777 pour que l’on puisse y déposer les images générées. Une fois les deux répertoires créés il faut déposer le fichier timthumb.php dans script.

Maintenant il ne reste plus qu’à modifier votre page d’accueil, « Appearance/Editor » puis Main Index Template (index.php) pour appeler la fonction en y ajoutant ce bout de code à l’endroit où vous souhaitez afficher la vignette :

< ?php if (catch_that_image()){ ?>


< ?php }; ?>

Notez que je fais un test pour savoir s’il y a une image ou pas et dans le cas où il n’y en ait pas je n’affiche rien (à adapter en fonction de vos besoins). Pour définir la taille des thumbs (vignettes) rien de plus simple dans la ligne : w=500&h=150&zc=1&q=100 il suffit de remplacer « w » par la largeur de votre choix et « h » par la hauteur de votre choix.

Avec cette méthode vous pouvez dire adieu aux champs personnalisés qui sont au niveau de la préhistoire pour l’affichage des vignettes sur la page d’accueil!

Source le forum de wordpress.org


Il y a quoi dans ton site?

Voici une application web qui ne va pas changer votre blog ni votre façon de bloguer mais qui peut être utile dans certains cas… Sitonomy analyse les outils utilisés par votre site comme les outils de statistiques, les librairies de scripts, la plateforme de blog utilisée et tout un tas d’autres indicateurs.

Ce qui est intéressant avec cette application, c’est la partie statistique présentée à droite qui va vous informer si les outils utilisés le sont aussi par les autres sites qui ont fait ce test.

Voici donc ce que Sitonomy donne pour 2803.fr :

2803-inside

Des choix très classiques au final!


Image related post, plus d’effet pour la navigation connexe

Depuis très très longtemps je souhaitais intégrer une navigation visuelle pour le module situé en bas de chaque article, communément appelé « related content » par nos amis américains. Malheureusement aucun plugin ne proposait cette fonctionnalité pourtant mise en place par certains sites comme Lifehacker. Mes talents de développeur PHP étant plus que limités je n’avais pas d’autre solution que de solliciter un vrai expert du sujet, Papygeek (qui accessoirement avait déjà intégré ce type de navigation sur son blog éponyme).

La technique employée par Papygeek sur son blog est efficace mais en ce qui concerne l’intégration sur 2803, je souhaitais que cette fonction utilise les « attachments » liés à chaque article afin de limiter les ressources serveur en ce qui concerne la génération des miniatures. Papygeek m’a donc fait une superbe adaptation de son développement initial pour répondre à ce cahier des charges.

Voici un screenshot du résultat (pour ceux qui lisent 2803 dans le flux RSS) :

Pour l’instant le plugin de Papygeek est encore dans une version beta, il nous proposera très certainement une release officielle prochainement si cela intéresse du monde! En tout cas merci à lui car la navigation des articles en rapport est maintenant beaucoup plus attractive qu’elle ne l’était auparavant.


Forum PHP le 21 et 22 novembre

Vous êtes fan de PHP, vous l’utilisez, vous souhaitez rencontrer d’autres développeurs et même le fondateur du PHP (Rasmus LERDORF), les 21 et 22 novembre prochain se tient le Forum PHP organisé par l’AFUP (Association Française des Utilisateurs de PHP).

forum php afup

Tous les détails sont ici.


Un éditeur de code bien pensé

Pour tous ceux qui doivent utiliser un éditeur de code (php, html, css…) pour windows, vous pouvez tester intype, il a l’air plutôt bien pensé et pratique. Le screencast est d’ailleurs explicite sur les fonctionnalités du soft.

intype

Pour télécharger le soft gratuitement c’est ici : http://intype.info