DrGoulu.com fait peau neuve 10


Il y a moins eu de billets sur DrGoulu ces derniers temps. J’ai plusieurs mauvaises excuses, et une bonne : j’ai réfléchi.

Comme à chaque fin d’année, je me suis dit qu’on menait des vies de fous où tout est trop rapide : on voit passer une info, si on est curieux on se documente un peu, si on est blogueur on écrit un petit article et hop on passe à autre chose. En 2010, ce blog s’est allongé de 43 articles, et je ne me souviens pas moi-même de la moitié… Alors je me suis demandé comment ralentir un peu le tempo, ou plutôt comment revenir avec un peu de recul sur des sujets abordés par le passé. Car un « Blog« , c’est d’abord une sorte de journal intime, ce qui suppose qu’on le relise de temps en temps, non ?

Alors j’ai eu une idée : afficher sur la page d’accueil de DrGoulu.com non plus les N articles les plus récents, mais le plus récent, suivi de celui écrit il y a un an, puis celui rédigé il y a 2 ans et ainsi de suite sur les 5 dernières années. Avec l’algo utilisé, le contenu de la page d’accueil peut même changer entre deux publications, ce qui donne d’autant plus d’occasions de suivre l’évolution des connaissances et des idées sur les sujets abordés. Comme les commentaires restent perpétuellement ouverts sur Dr. Goulu, ce sera aussi l’occasion de relever mes nombreuses erreurs et si possible de les corriger.

D’autre part, et je ne le cache pas, c’est aussi une tentative de « rentabiliser » un peu plus certains articles sur lesquels j’ai passé pas mal de temps et qui n’ont pas eu le succès que j’espérais. Ils reviendront ainsi périodiquement en première page pour une nouvelle jeunesse.

Pour réaliser cette expérience et en préparer d’autres à venir, j’ai du changer l’hébergement du blog. L’ancien est toujours disponible (mais fermé) à https://drgoulu.com. Le nouveau tourne désormais sur un serveur loué mais toujours sous WordPress, ce qui laisse beaucoup plus de liberté pour faire un site. J’en ai profité pour faire quelques changements esthétiques et d’autres destinés à faire connaitre un peu plus Dr. Goulu sur la blogosphère (Votez pour moi!)…

Je sais que tout n’est pas encore parfait, je fignole encore mais n’hésitez pas à me faire part de vos remarques et suggestions, surtout sur le concept des « articles annuels ».

Voilà, si vous lisez cet article sur la page d’accueil, vous trouverez ci-dessous les articles écrits à la fin de chacune des années passées, avec les voeux appropriés, ce qui ne m’empêchera pas, cher lecteur, de vous souhaiter une

Excellente Année 2011 !

  • Ah je me suis fait piéger! Je n’avais pas lu cet article et comme je ne regarde pas trop les dates je n’ai rien compris aux articles suivants que j’avais bien l’impression d’avoir déjà lu… Et ensuite j’ai eu du mal à retrouver les articles que j’avais sauté ces derniers jours. Bon bref, c’est une bonne idée ces anciens articles remontés en une, mais pour les neu-neu comme moi il faut une signalétique bien claire, sinon on va se dire qu’on est vraiment devenus fous 🙂

    • ouaip, c’est juste, je vais faire ça. Bonne résolution pour début 2011 🙂

  • Salut Dr Goulu,

    Juste un petit message pour te souhaiter bonne année et te dire que je trouve ton idée de mettre les articles anniversaires des 5 années précédentes tout a fait génial. Je suis certains que 2011 sera encore pleines de bons billets.

  • Yves Masur

    Salut Dr Goulu, bonne année 2011! Quant à ton problème d’affichage d’articles,il me semble que le plus rapide – puisque la solution de Neamar ne semble pas réalisable – serait de créer une liste à part (fichier plat ou une entrée de DB) avec un CRON ou qq chose de similaire à dispo. Éventuellement par la première requête du jour, mais celui-ci attendrait forcément.Ensuite utiliser cette liste, qui ressemble à un cache.

  • Sur l’idée maintenant : je trouve que c’est une très bonne initiative. Il faudrait peut-être ajouter cependant un paramètre indiquant s’il s’agit d’un article d’actualité ou non pour ne pas non plus devenir l’INA du Dr. Goulu 😉

    • Ouaip. En fait il n’y a que sur la page d’accueil que ce n’est pas forcément clair. Je pourrais ajouter des « il y a 1 an », « il y a 2 ans » etc. Vais réfléchir.

  • Pour le script ; et sans rentrer trop dans les détails.
    Je suppose qu’il s’agit de SQL et que tu as le contrôle de ta requête, essaie avec un
    WHERE Parution > Date_cherchée
    ORDER BY Parution
    LIMIT 1

    Autrement dit, récupérer directement l’article le plus proche de la date sans boucler.
    C’est pas extraordinaire non plus, mais ça a l’avantage d’être rapide à mettre en place 🙂

    • ben justement, je n’ai pas trouvé de fonction WordPress permettant de faire une recherche d’articles par requête SQL 🙁 Ils ont une classe WP_Query qui s’occupe de ça et qui renvoie les billets sous forme d’objets faciles à afficher. J’ai aussi examiné la fonction query_posts et le système de Filters. Tout ça est très puissant… mais ne permet apparemment pas de faire ce que je veux. Peut-être qu’il faudrait que je creuse dans WP_Query pour voir où se fait la requête SQL, effectivement.
      J’ai aussi songé faire ça sous la forme d’une « extension » qui ajouterait une table mySQL avec une ligne par jour contenant l’ID du dernier article publié avant ce jour là. J’ajoute ça à la pile « à faire un jour… »

  • Romain

    Bonsoir,
    Ayant découvert votre blog il y a peu de temps, cette nouvelle page d’accueil est une très bonne idée, elle me permettra de (re)découvrir votre travail.
    Bonne continuation et bonne année 2011 !

    Romain

  • Dr. Goulu

    Pour la présentation des « articles annuels », je dois avouer que je ne suis pas fier de mon code PHP, inefficace et donc lent. Si quelqu’un a une idée pour rendre « The Loop » plus rapide, il aura droit à ma reconnaissance éternelle :

    <?php $today= new DateTime('now');
    for ($i = 0; $i < 5; $i++) {
    $date=clone $today;
    do {
    
      $query='monthnum='.$date->format('m').'&day='.$date->format('d').'&year='.$date->format('Y');
      query_posts($query);
      $date->modify('-1 day');
    } while (!have_posts())
    
    the_post(); // et autres trucs affichés pour chaque article
    
    $today->modify('-1 year');
    
    } ?>