2016-07-06 68 views
0

我有很多我的WordPress插件CSS腳本可能會影響其他WordPress的標籤,如form爲例:顯示樣式表只在插件頁面的WordPress

.form { 
    padding:30px; 
    background-color:#fff; 
} 

我可以改變CSS,但我想要一個只允許樣式表顯示在插件頁面上的腳本。

所以把它清除掉,目前樣式<link>總是在管理面板的源代碼,但我想一個腳本,只有當用戶插件頁面上放樣式<link>在源代碼中。

+0

更好的做法是在你的身體標記條件與頁面名稱或任何添加和使用'.pagename .FORM {}'至少那麼它不是一個樣式表另一個連接。不要使用PHP插入css規則,它可能會混亂尋找這個代碼來更新。 – David

回答

0

您可以使用get_current_screen

$screen = get_current_screen(); 

if ($screen->id == 'your_plugin_page')){ 
    $custom_css = ".form {.....}"; 
    wp_add_inline_style('your_main_style_handle', $custom_css); 
} 

更新1:

將子菜單添加到你的管理菜單:

add_action('admin_menu', 'your_plugin_admin_menu'); 
//Add this to register you styles 
add_action('admin_init', 'your_plugin_admin_init'); 

則:

/** 
* Register your stylesheet. 
*/ 
function wpdocs_plugin_admin_init() { 
    wp_register_style('your-style', plugins_url('scripts/jquery-ui.css',__FILE__)); 

    wp_register_script('jquery-ui', plugins_url('scripts/jquery-ui.js',__FILE__)); 
} 

/** 
* Register your plugin page and hook stylesheet loading. 
*/ 
function your_plugin_admin_menu() { 
    $page = add_submenu_page(...., 'your_plugin_manage_menu'); 

    //Call 'your_plugin_admin_styles' only on the plugin’s options page 
    add_action("admin_print_styles-{$page}", 'your_plugin_admin_styles'); 
} 

/** 
* Enqueue our stylesheet. 
*/ 
function your_plugin_admin_styles() { 
    wp_enqueue_style('your-style'); 
    wp_enqueue_script('jquery-ui'); 

    $custom_css = ".form {.....}"; 
    wp_add_inline_style('your-style', $custom_css); 
} 

/** 
* Output our admin page. 
*/ 
function your_plugin_manage_menu() { 
    // ... 
} 
+0

我推薦內聯CSS不是很好的編碼實踐,但如果需要的話,你可以使用這個解決方案,它準確的工作。 –

+0

由於某種原因,不適合我;我的URL是'options-general.php?page = maintenance',所以'maintenance'應該是我的ID,然後我包裝'if($ screen-> id =='maintenance'){'圍繞樣式表,但是刪除風格完全。 –

+0

確保在上述代碼之前調用了'wp_enqueue_style('your_main_style_handle','path/to/your/style.css')'。 –

相關問題