奇怪的是,在wp 3.3.1的管理员中注册/入队/插件_url()自定义css

时间:2012-01-24 14:01:49

标签: wordpress-plugin admin

我在注册和排队css文件时遇到问题(在管理员表单中) 我正在尝试使用admin_init使用

在admin中注册和排队我的css文件
 $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 如果我通过浏览器检查,那个网址是完全正确的。 然而,..      if(file_exists($ myStyleUrl))//找不到它?

检查另一个存在是否正常,即“$ myStyleFile

有人请? THX

2 个答案:

答案 0 :(得分:0)

file_exists()函数用于检查本地文件是否存在,因此如果您将URL传递给它,它将尝试在本地文件系统上查找该路径(并失败)。

调用plugins_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' );
    }
}
?>

答案 1 :(得分:0)

// 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' );
  }