我在注册和排队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
答案 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' );
}