Странно, регистрация / постановка в очередь / plugins_url () пользовательских css в Admin из wp 3.3.1 - PullRequest
2 голосов
/ 24 января 2012

У меня проблема с регистрацией и постановкой в ​​очередь файла css (в форме администратора). Я пытаюсь зарегистрировать и поставить в очередь свой файл css в admin, используя admin_init, с

 $myStyleUrl = plugins_url('/SBaronAdmin/MyPopupStyle.css'); // Path relative to the plugins URL     
 $myStyleFile = WP_PLUGIN_DIR . '/SBaronAdmin/MyPopupStyle.css';but

Если я проверяю, например,,echo $ myStyleUrl;// result = http://localhost/wordpress/wp-content/plugins/SBaronAdmin/MyPopupStyle.css Если я проверю через браузер, этот URL-адрес будет совершенно правильным.пока ... если (file_exists ($ myStyleUrl)) // не найдет его ??

Проверка, если другой существует нормально, т.е. "$ myStyleFile

Кто-нибудь, пожалуйста? Thx

Ответы [ 2 ]

0 голосов
/ 16 февраля 2012
// Hook for adding SB admin menus
add_action('admin_menu', 'Add_SBMenu_Pages');
function Add_SBMenu_Pages() {
     add_menu_page('Page title', 'SandwichBaron', 'manage_options', 'my-top-level-handle', 'fn_SBMenus_page');

     //some other identical add submenu pages........

    $page = add_submenu_page( 'my-top-level-handle', 'Page title', 'Platters', 'manage_options', 'my-submenu-handle4', 
                    'fn_SB_Branches4_Menus_page');
    add_action( 'admin_print_styles-' . $page, 'my_plugin_admin_styles' );
}

function my_plugin_admin_styles() {
      /*
       * It will be called only on $Page page, enqueue our stylesheet here
       */
      wp_enqueue_style( 'myPopupStyle' );
  }
0 голосов
/ 13 февраля 2012

Функция file_exists () предназначена для проверки, существует ли локальный файл, поэтому, если вы передадите ему URL, он попытается найти этот путь в локальной файловой системе (и потерпит неудачу).

КогдаВы вызываете plugins_url (), вы должны передать второй аргумент, который является относительным путем.Таким образом, если кто-то переименует вашу папку плагинов, она не сломается.

Исходя из вашего фрагмента кода, я предполагаю, что вы ссылаетесь на образец по следующему URL:

http://codex.wordpress.org/Function_Reference/wp_enqueue_style#Examples

Обратите внимание, что когда они проверяют, существует ли файл, они используют $ myStyleFile, а не $ myStyleUrl.Это то, что вы хотите сделать.

<?php
function add_my_stylesheet() {
    $myStyleUrl = plugins_url('MyPopupStyle.css', __FILE__);
    $myStyleFile = dirname( __FILE__ ) . '/style.css';
    if ( file_exists($myStyleFile) ) {
        wp_register_style( 'SBaronAdminStyle', $myStyleUrl );
        wp_enqueue_style( 'SBaronAdminStyle' );
    }
}
?>
...