2016-07-06 4 views
0

У меня есть много CSS сценариев в моем WordPress плагин, который может повлиять на другие теги WordPress, например, form в качестве примера:Показать стилевых только на Plugin странице 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); 
} 

Update 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' должен быть моим идентификатором, а затем я завершаю 'if ($ screen-> id == 'maintenance') {' вокруг таблицы стилей, но удаляет стиль полностью. –

+0

Убедитесь, что вы вызывали 'wp_enqueue_style ('your_main_style_handle', 'путь/to/your/style.css')' перед указанным выше кодом. –

0

вы можете создать таблицу стилей и создать привязку для этой таблицы стилей. Затем вы можете добавить WordPress, используя add_action(), в вызове плагина, где вы хотите вызвать этот скрипт. Таким образом, он будет ссылаться на начальника страницы на указанную страницу по мере необходимости. Подробнее о https://developer.wordpress.org/reference/functions/wp_enqueue_script/ https://developer.wordpress.org/reference/functions/add_action/

Смежные вопросы