Cum să includ corect un fișier CSS pentru panourile din wp-admin în WordPress

9 apr. 2012, 17:36:14
Vizualizări: 303
Voturi: 0

Care este metoda corectă de a include un fișier de stiluri pentru panourile de opțiuni din wp-admin pentru un plugin sau temă. Cu alte cuvinte -- fișierul CSS care stilizează panourile.

Adică, în codul șablonului panoului, fac ceva de genul...

<style type="text/css">
@import url("../wp-content/plugins/myplugin/panels/style.css");
</style>

...dar bănuiesc că acest lucru nu va funcționa pe unele instalări WordPress din cauza căilor și așa mai departe, și s-ar putea să nu mai funcționeze în viitor dacă WP decide să redenumească directorul wp-content cu altceva.

2
Comentarii

@Sisir te rog să postezi răspunsuri ca răspunsuri, nu ca comentarii.

Chip Bennett Chip Bennett
9 apr. 2012 18:45:23
Toate răspunsurile la întrebare 2
1
function load_myplugin_wp_admin_style(){
        // Încarcă fișierul CSS pentru panoul de administrare
        wp_register_style( 'myplugin_wp_admin_css', plugins_url( '/myplugin/panels/style.css' ), false, '1.0.0' );
        wp_enqueue_style( 'myplugin_wp_admin_css' );
}
// Adaugă acțiunea pentru încărcarea stilurilor în panoul de administrare
add_action('admin_enqueue_scripts', 'load_myplugin_wp_admin_style');
9 apr. 2012 17:41:52
Comentarii

Deși această metodă funcționează, va afișa fișierul tău de stil personalizat pe fiecare pagină de administrare. În cel mai bun caz, reprezintă o încărcare inutilă; în cel mai rău caz, poate cauza probleme de stil pentru nucleul WordPress și/sau alte pluginuri.

Chip Bennett Chip Bennett
9 apr. 2012 18:28:31
8

Metoda best practice pentru încărcarea foilor de stiluri în administrare este să te conectezi la hook-ul specific paginii de aspect, folosind admin_print_styles-{hook}, unde {hook} = {admin_page}-{menu_slug}.

Voi presupune:

  1. Aceasta este o Temă
  2. Folosești corect o pagină de aspect, prin intermediul add_appearance_page()
  3. $menu_slug-ul tău este wpse48416-settings

Hook-ul, atunci, este: admin_print_styles-appearance_page_wpse48416-settings:

<?php
function wpse48416_admin_style(){
        wp_register_style( 'wpse48416_admin_css', get_template_directory_uri() . '/css/admin.css' );
        wp_enqueue_style( 'wpse48416_admin_css' );
}
add_action( 'admin_print_styles-appearance_page_wpse48416-settings', 'wpse48416_admin_style' );
?>

Pentru un Plugin, trebuie doar să folosești șirul {page} corect, în funcție de funcția de meniu administrativ pe care o folosești pentru a înregistra pagina de setări, de exemplu settings_page pentru add_settings_page().

9 apr. 2012 18:27:50
Comentarii

Ce fac dacă folosesc add_menu_page() și add_submenu_page() pentru a adăuga panourile mele de administrare?

Volomike Volomike
13 apr. 2012 21:39:13

"Ce fac dacă folosesc add_menu_page() și add_submenu_page() pentru a adăuga panourile mele de administrare" - ei bine, cea mai bună practică ar fi să treci la add_theme_page() sau add_settings_page(). (rânjet). Dar, cred că pentru add_menu_page() sau add_submenu_page(), ai folosi admin_page în loc de appearance_page.

Chip Bennett Chip Bennett
13 apr. 2012 21:56:33

Am descoperit că au câteva exemple fantastice la sfârșitul acestor pagini pentru a-mi rezolva problema și funcționează! Ura! Mergi la http://codex.wordpress.org/Function_Reference/, apoi caută "wp_enqueue_script" și "wp_enqueue_style".

Volomike Volomike
13 apr. 2012 22:06:09

Apropo, ai spus că aceasta este cea mai bună practică, dar este încă cea mai bună practică? Tocmai am descoperit asta: http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts

Volomike Volomike
13 apr. 2012 22:32:56

În cazul meu, am cel puțin 4 formulare pentru pluginul meu, iar unul dintre aceste formulare este o pagină de listă pentru a selecta dintre 50 de elemente. Așadar, am ales un meniu de nivel superior. În plus, cred că este confuz în WordPress când instalezi un plugin numit "X" și apoi meniul său se numește "Link-uri", iar tu nu știi asta și cauți în setări, doar pentru a fi confuz. WordPress ar trebui să rezolve acest lucru în viitor.

Volomike Volomike
14 apr. 2012 16:38:20

Știi că poți crea file pentru pagina de setări, nu? De asemenea: poți adăuga un link către pagina de setări în plugin_meta_row pe Panoul de control -> Pagina de plugin-uri, astfel încât utilizatorii să nu fie nevoiți să caute pagina ta de setări. :)

Chip Bennett Chip Bennett
14 apr. 2012 20:28:31

hai să continuăm această discuție în chat

Volomike Volomike
14 apr. 2012 20:40:35
Arată celelalte 3 comentarii