Категории |
Ошибка. Не работала функция plugurl в плагинах (v2.5.3)Есть, к примеру, такой вот код. add_action('page_admin', 'manager_page'); add_action('head_admin', 'manager_head'); function manager_page() { // Подключаем нужные файлы в хедер только на странице плагина function manager_head() { _e ('<link rel="stylesheet" type="text/css" href="'.plugurl().'css/style.css">'); _e ('<script language="javascript" src="'.plugurl().'js/jquery-1.4.2.min.js"></script>'); _e ('<script language="javascript" src="'.plugurl().'js/iColorPicker.js"></script>'); } include (dirname(__FILE__).'/manager_page.php'); } Как побороть то? Может что-то не правильно делаю? Похоже, plugurl() берет путь от последнего подключенного плагина. Ага. Это что у Вас функция функция функция функция Четыре уровня вложенности, не считая двух уровней вложенности определений функции! manager_head() выньте из manager_page() Если вынуть manager_head() то эти скрипты будут подключаться на всех страницах! А как тогда обойти это дело и подрубить скрипты в head именно на странице плагина? А стандартно, так: if ( is_page('manager_page') ) { manager_head(); } // Подключаем нужные файлы в хедер только на странице плагина function manager_head() { _e ('<link rel="stylesheet" type="text/css" href="'.plugurl().'css/style.css">'); _e ('<script language="javascript" src="'.plugurl().'js/jquery-1.4.2.min.js"></script>'); _e ('<script language="javascript" src="'.plugurl().'js/iColorPicker.js"></script>'); } function manager_page() { include (dirname(__FILE__).'/manager_page.php'); } ?? Если и так не сработает, то ещё: $plug_url = plugurl(); _e ('<link rel="stylesheet" type="text/css" href="' . $plug_url . 'css/style.css">'); Нет. Все равно выводит подключенные скриипты на всех страницах. Еще какой-то косяк с текстовками. поправлено Похоже, plugurl() берет путь от последнего подключенного плагина. Очень криво как-то... нет. перед вызовом функции экшена выставляется текущая папка текущего плагина. Еще какой-то косяк с текстовками. Например если я в основном файле плагина пропишу define('HEADING_TITLE','Менеджер'); То на всех страницах админки будет в заголовках написано Менеджер. А вот если я помещу define('HEADING_TITLE','Менеджер'); в функцию manager_page() и дам другое название, например не HEADING_TITLE, а HEADING_TITLESSSS, то тогда все норм. Т.е. совпадает получается название с уже существующим тегом заголовка... как-то запутанно все) константу можно определять только один раз. а файл с твоим define('HEADING_TITLE','Менеджер'); инклудится раньше чем эта HEADING_TITLE определяется в движке. если включить вывод notice то будет видно что при попытке повторного объявления константы возникает проблемка |
|