Бъг в WordPress: визуалния редактор не работи

Преди малко открих бъг в WordPress 2.8.4 (последната версия в момента).

Грешка

Докато за пореден път актуализирах любимата си статия Популяризиране на сайт с външни връзки, открих следния неприятен ефект – в админ панела при промяна на публикация визуалния редактор спира да зарежда текста и в долния десен ъгъл изчезна грапавото ъгълче за разтягане на полето с текста на публикацията. Така единствено в режим на HTML може да се промени статията.

Проучване

Разгледах внимателно цялата страница и забелязах, че страницата не се е заредила до края и не показва предишните версии на публикацията. В долния край на страницата има списък с предишни версии на публикацията, които се увеличават при всяка промяна на статията. Веднага след заглавието на списъка „Версии на публикацията“ страницата завършваше. Разгледах други публикации от блога, но там нямаше проблем. Това ме наведе на мисълта, че грешката се дължи на големия брой версии на публикацията и дългия текст. За съжаление в момента нямам време да прегледам кода на WordPress, но вероятно всички предишни версии се зареждат в паметта и при голям брой версии страницата се чупи.

Отворих cpanel на хостинга и от там влязох в phpMyAdmin. След кратко разглеждане на таблицата с публикациите wp_posts разбрах как да изведа броя на предишния брой публикации.От адреса на страницата за промяна на публикация се вижда, че номера на публикацията е 125. Адреса е:  http://ganbox.com/blog/wp-admin/post.php?action=edit&post=125

Изпълнява се следната SQL заявка:

SELECT *  FROM `wp_posts` WHERE `post_name` LIKE '125-%'

Където 125 е номера на публикацията и при мен изведе
Showing rows 0 – 29 (82 total, Query took 0.0041 sec)

Вижда се, че има 82 версии на публикацията, като се добави и това, че текста е дълъг бях сигурен, че това е проблема.

За всеки случай си направих резервно копие на таблицата wp_posts и след това реших да поизтрия малко стари версии.

Решение

Първо изпълних заявката

SELECT *  FROM `wp_posts` WHERE `post_name` LIKE '125-%'
AND post_date < NOW() - INTERVAL 1 MONTH
ORDER BY  post_date

Showing rows 0 – 29 (56 total, Query took 0.0173 sec)

Това ми показва, че има 56 версии по-стари от един месец.

Изтрих ги със заявката:

DELETE  FROM `wp_posts` WHERE `post_name` LIKE '125-%'
AND post_date < NOW() - INTERVAL 1 MONTH

Всичко си заработи нормално при промяна на публикацията.

Явно този бъг се проявява много рядко и само, когато сумарния текст от всички версии на една публикация е прекалено голям.  Ако и при теб „Визуалния редактор“ на WordPress спре да зарежда текста може да пробваш този хак.

Винаги прави резервни копия на базата данни преди да го използваш, ganbox.com не носи отговорност за проблеми възникнали от използването на този хак.

Прочетена:6589
« Предишна публикация

Гугъл трикове: правилно индексиране на сайт

Тази статия е за всички, които се интересуват от SEO и следят за своя сайт, колко от страниците са индексирани правилно в основния индекс на Google и колко от тях са влезли в допълнителни резултати. Ако ... Повече информация »

Следваща публикация »

PHP: Извличане текст от интернет страница

Един примерен скрипт за извличане на текстово съдържание от интернет страница. Ползва функцията get_page_content($url), която извлича цялото съдържание на страница - пълния HTML документ. Тази функция ползва CURL библиотеката. Ако в инсталацията на PHP няма разширението ... Повече информация »

4 коментара

  1. Casper 20.10.2009
  2. gan 21.10.2009
  3. Casper 21.10.2009
  4. bogo 27.05.2010