Modo corretto per includere un foglio di stile per i pannelli
Qual è il modo corretto per includere un foglio di stile con i miei pannelli di opzioni in wp-admin per un plugin o un tema. In altre parole -- il foglio di stile che formatta i pannelli.
Intendo, nel codice del mio template del pannello, sto facendo qualcosa come...
<style type="text/css">
@import url("../wp-content/plugins/myplugin/panels/style.css");
</style>
...ma sospetto che questo non funzionerà su alcune installazioni di WordPress a causa dei percorsi e così via, e potrebbe non funzionare in futuro se WP decidesse di rinominare wp-content con qualcos'altro.

function load_myplugin_wp_admin_style(){
// Registra il foglio di stile CSS per l'admin
wp_register_style( 'myplugin_wp_admin_css', plugins_url( '/myplugin/panels/style.css' ), false, '1.0.0' );
// Carica il foglio di stile
wp_enqueue_style( 'myplugin_wp_admin_css' );
}
// Aggiunge l'azione per caricare gli script nell'admin
add_action('admin_enqueue_scripts', 'load_myplugin_wp_admin_style');

Il metodo migliore pratica per accodare i fogli di stile nell'area di amministrazione è quello di agganciarsi all'hook specifico della pagina di aspetto, utilizzando admin_print_styles-{hook}
, dove {hook}
= {admin_page}-{menu_slug}
.
Supporrò che:
- Si tratti di un Tema
- Stiate utilizzando correttamente una pagina di aspetto, tramite
add_appearance_page()
- Il vostro
$menu_slug
siawpse48416-settings
L'hook, quindi, sarà: 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' );
?>
Per un Plugin, è sufficiente utilizzare la stringa corretta per {page}
, a seconda della funzione di menu di amministrazione utilizzata per registrare la pagina delle impostazioni, ad esempio settings_page
per add_settings_page()
.

Cosa devo fare se sto usando add_menu_page() e add_submenu_page() per aggiungere i miei pannelli di amministrazione?

"Cosa devo fare se sto usando add_menu_page() e add_submenu_page() per aggiungere i miei pannelli di amministrazione" - beh, il miglior approccio come primo passo sarebbe passare a add_theme_page()
o add_settings_page()
. (sorriso). Ma penso che, per add_menu_page()
o add_submenu_page()
, dovresti usare admin_page
invece di appearance_page
.

Ho scoperto che ci sono alcuni fantastici esempi in fondo a queste pagine per risolvere il mio problema, e ora funziona! Evviva! Vai su http://codex.wordpress.org/Function_Reference/, poi cerca "wp_enqueue_script" e "wp_enqueue_style".

A proposito, hai detto che questa era la best practice, ma è ancora la best practice? Ho appena scoperto questo: http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts

Sì, sono sicuro che sia una best practice utilizzare un sottomenu appropriato, piuttosto che un menu di primo livello, per le pagine di amministrazione di un tema/plugin.

Nel mio caso, ho almeno 4 form per il mio plugin, e uno di questi form è una pagina di elenco da cui selezionare tra 50 elementi. Quindi, ho scelto un menu di primo livello. Inoltre, penso che sia confuso in WordPress quando installi un plugin chiamato "X" e poi il suo menu si chiama "Link", e tu non lo sai e vai a cercare sotto Impostazioni, rimanendo confuso. WordPress dovrebbe sistemare questo in futuro.

Sai che puoi creare schede per la pagina delle impostazioni, vero? Inoltre: puoi inserire un link alla pagina delle impostazioni nella plugin_meta_row nella pagina Dashboard -> Plugins, in modo che gli utenti non debbano cercare la tua pagina delle impostazioni. :)

continuiamo questa discussione nella chat
