loshia

blogs the world

rewrite мизерии в WordPress

От известно време насам пробвам да пускам кратки постове по няколко реда или някоя и друга снимка или филмче, които нямат заглавие като това например{.broken_link}. Тогава WordPress се усеща и като адрес на поста слага неговия номер. Резултатът е нещо от вида на https://loshia.com/wp/994/.

Проблемът се появява, когато номерата станат над 1000. Всеки опит да се разгледа пост с номер над 1000 води до грешка. След доста чесане по главата и дебъгване на PHP скриптове открих, че WordPress третира всички адреси от рода на горния и завършващи с четири цифри като архив за дадена година. Например https://loshia.com/wp/3550/ показва архива за 3550-а година. Което си е доста смешно като се замислиш.

С малка модификация в rewrite.php, ред 226 (версия 2.6.3 на WordPress) проблемът беше отстранен. На въпросния ред заменете ([0-9]{4}) с (200[6-9]{1}). Това прави така, че за архив за годините да се познават само тези от 2006 до 2009.

А като стане 2010 ще му мислим как да включим и нея 🙂