„Nie ma oprogramowania bez błędów, jest tylko takie gdzie ich jeszcze nie znaleziono” – być może mieliście już okazję słyszeć takie zdanie. WordPress tutaj nie jest wyjątkiem – w ostatnich dniach sam znalazłem w nim dwa błędy.

Pierwszy z błędów nie dawał mi spokoju już od jakiegoś czasu – mój blog nie chciał się dać pingować. Po prostu się uparł i tyle. Nie działało nawet pingowanie w obrębie bloga. W końcu usiadłem i zacząłem szukać co jest, i znalazłem – w wyrażeniu regularnym wyciągającym URLe ze strony brakowało przecinka. Przez ten drobny błąd przecinek i wszystko co jest za nim w adresie było usuwane. Ponieważ ja mam przecinek w adresach stron, więc nie dziwne że nie chciało to działać jak należy. Wysłałem odpowiedni ticket z informacją o błędzie, zobaczymy kiedy to poprawią (mam nadzieję że w 2.7.1, tak jak ustawiłem). Opisałem tam też co poprawić – w pliku wp-includes/comment.php należy zmienić linię 1400 z:

$punc = '.:?\-';

na:

$punc = '.:?\-,';

Drugi błąd ujawnił się przy okazji korzystania z WyPiekacza (jeżeli śledzicie PiO to pewnie go już znacie, bo pochwaliłem się nim tam). Plugin ten sprawdza czy artykuły publikowane na preclu spełniają wymogi regulaminu, i jeżeli coś mu się nie spodoba to przenosi je z powrotem to stanu Szkic. Zmiana zapisuje się poprawnie w bazie danych, ale pluginy dostają informacje o zmianie stanu posta zawierającą stare dane. Efekt – plugin WP Status Notifier wysyłał mi maile o nowych wpisach do moderacji, chociaż tak naprawdę WyPiekacz je odrzucił. Oczywiście na to też zalogowałem odpowiedniego ticketa. Poprawka tutaj jest bardziej skomplikowana, bo problem dotyczy nie tylko statusu postów. Mi osobiście na ten moment wystarczyła drobna poprawka usuwająca problem z tymi dodatkowymi mailami – w pliku wp-includes/post.php, po linii 1458 dopisałem nową linię:

$post_status = $data['post_status'];

Mam nadzieję że ten błąd też szybko naprawią w oficjalnej wersji.

Update: po opublikowaniu tego posta pojawiła mi się informacja o dostępnej aktualizacji WP do wersji 2.7.1. Trzeba zatem poczekać na 2.7.2 :)