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__));.

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

  1. minitokaNo Gravatar

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

  2. Сергей КуракинNo Gravatar Post author

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

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.