Cum să includ corect un fișier CSS pentru panourile din wp-admin în WordPress
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.

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

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:
- Aceasta este o Temă
- Folosești corect o pagină de aspect, prin intermediul
add_appearance_page()
$menu_slug
-ul tău estewpse48416-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()
.

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

"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
.

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".

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

Da, sunt sigur că este cea mai bună practică să folosești un sub-meniu adecvat, în loc de un meniu de nivel superior, pentru paginile de administrare ale unei teme/plugin.

Î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.

Ș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. :)

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