J’ai passé entre hier et aujourd’hui environ 4 heures à lire le code source de Wordpress, et à essayer de comprendre pourquoi mon blog affichait des liens “Previous entries” menant à des 404. Étant donné que c’était la première fois que je mettais vraiment le nez en dehors du code de mon template, le processus a été douloureux :sad:.
Mes recherches ont mené au résultat suivant : en choisissant le mode “Afficher n jours de posts par page” plutôt que “Afficher n posts par page”, je désactive de facto le calcul du nombre de pages du même type que la page affichée ; Wordpress considère en effet qu’il a 999999 pages du même style (fichier wp-includes/templates-functions-links.php
, fonction posts_nav_link
. Il est vrai que la requête a écrire pour obtenir ce nombre total de pages est complexe à écrire (je suis en train de réfléchir à la forme qu’elle devrait prendre), mais ça n’excuse pas l’absence totale de commentaires sur le sujet dans la fonction. J’ai ouvert un rapport de bug, je suis curieux de voir quelle suite va lui être donnée.
Toutes ces investigations m’ont permis de remarquer que le thème par défaut de Wordpress 1.5, Kubrick, appelle cette fonction entre 2 et 4 fois par pages. Les appels 1 et 2 servent à générer les liens “Previous” et “Next” séparément car, dans Kubrick, ils sont inclus dans des balises html ; la fonction posts_nav_link
n’est pas assez générale actuellement pour traiter proprement ce cas. Les appels 3 et 4 servent à écrire deux fois ces liens, alors qu’il serait très simple de sauvegarder le premier appel…