2006-03-31

WordPress Widgets на Windows хостинг платформе

WordPress Widgets на Windows хостинг платформе у меня не пошёл сразу (Да, как я писал раньше, я тут-же показал это дело и мне сказали инсталлировать). Не пошёл он тем, что не подгружал в себя свою JavaScript часть и CSS. PHP нам не новость, и пошли мы во внутренностях ковыряться. Клиент был скорее жив чем мёртв. Есть в этом плагине такая функция: sidebar_admin_setup, а в ней, на строкер (относительно начала файла) 185 проверка: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, __FILE__);. Классно, да? В чём класс? А в том, что у Windows слешики то другие - \ и мы нервно ищем спички, что бы их выкурить. Слеши можно поменять, сделав проверку платформы, или просто, быстро и глупо заменим на: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, str_replace ( ‘\\’, ‘/’, __FILE__));. Ура, казалось всё должно было заработать.

Но не тут то было. Понеслось оно по проводам: Fatal error: Cannot redeclare register_sidebars() (previously declared in *\***\wp-content\plugins\widgets\widgets.php:22) in *\***\wp-content\plugins\widgets\widgets.php on line 22. Опаньки! А что у нас там? А! Начало плагина - первая функция. Здорово то как! Бамбук ни у кого не завалялся? Курить охота. Перед ней добавим: if (!function_exists ( 'register_sidebars')) {, в конце файла, перед ?>, добавим } и на этом у меня всё заработало. Вот, думаю, может кому поможет?


If you got error like Fatal error: Cannot redeclare register_sidebars() (previously declared in *\***\wp-content\plugins\widgets\widgets.php:22) in *\***\wp-content\plugins\widgets\widgets.php on line 22 when installing WordPress Widgets on Windows hosting, probably, you will see solution of this problem.
Before declaration of this function add this code: if (!function_exists ( 'register_sidebars')) {, and before end of PHP part of file, after last function declaration, add this code: }. So, now, on second file include of WordPress Widgets, those function won’t do any troubles any more.

If WordPress Widgets do not loads JavaScript or/and CSS files, please, check the 185 line. Probably you will see there line like: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, __FILE__);, and on Windows, constant __FILE__ will be with different slashes (like this one: \). Possible, you can solve this problem like me: $page = preg_replace('!^.*/wp-content/[^/]*plugins/!’, ”, str_replace ( ‘\\’, ‘/’, __FILE__));.

Blog — Сергей Куракин @ 10:27
Уже комментировало (2) »
  1. Комментиров(ал|ала), minitokaNo Gravatar — 2006-03-31 @ 19:05

    Мужчина, вы в своём журнале этого не пишете только из-за рекламы Google? :-)

  2. Комментиров(ал|ала), Сергей КуракинNo Gravatar — 2006-04-01 @ 00:11

    minitoka - нет, если бы мне была нужна такая реклама и способ дохода, сайт был более релевантным и на английском. Блог ведётся для себя - память у нас не бесконечная, а что написано, то не вырубить.

RSS комментариев. TrackBack URI

Оставить свой комментарий