Aggiungere un foglio di stile personalizzato a wp-admin
Ho problemi a far funzionare il mio foglio di stile personalizzato nell'area WP-ADMIN.
plugins_url('style.css', __FILE__)
devo creare una cartella nei miei plugin chiamata css o devo semplicemente copiare il mio .css
nella directory wp-admin/css
?
Ho provato entrambi i metodi ma non sembrano funzionare.
E quali valori dovrebbero sostituire __FILE__
?
Scusate, sono nuovo in queste cose.
/*AGGIUNGE FOGLIO DI STILE IN WP-ADMIN*/
add_action( 'admin_enqueue_scripts', 'safely_add_stylesheet_to_admin' );
function safely_add_stylesheet_to_admin() {
wp_enqueue_style( 'prefix-style', plugins_url('style.css', __FILE__) );
}
/*AGGIUNGE LA MIA BARRA DI NAVIGAZIONE PERSONALIZZATA IN WP-ADMIN*/
add_action('admin_head', 'custom_nav');
function custom_nav(){
include('custom_nav.html');
}
Secondo il WordPress Codex (qui):
admin_enqueue_scripts è la prima azione agganciata alle azioni degli script di amministrazione.
Esempio
Caricare file CSS o JS per tutta l'area di amministrazione:
//da functions.php
//Prima soluzione: un file
//Se stai usando un child theme puoi usare:
// get_stylesheet_directory_uri() invece di get_template_directory_uri()
add_action( 'admin_enqueue_scripts', 'load_admin_style' );
function load_admin_style() {
wp_register_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' );
//OPPURE
wp_enqueue_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' );
}
//Seconda soluzione: due o più file.
//Se stai usando un child theme puoi usare:
// get_stylesheet_directory_uri() invece di get_template_directory_uri()
add_action( 'admin_enqueue_scripts', 'load_admin_styles' );
function load_admin_styles() {
wp_enqueue_style( 'admin_css_foo', get_template_directory_uri() . '/admin-style-foo.css', false, '1.0.0' );
wp_enqueue_style( 'admin_css_bar', get_template_directory_uri() . '/admin-style-bar.css', false, '1.0.0' );
}
Devo creare una cartella nel mio plugin chiamata css o posso semplicemente copiare il mio file .css nella directory wp-admin/css?
No, inserisci il tuo file CSS insieme agli altri, nella directory del tuo tema, poi specifica il percorso con:
get_template_directory_uri() . '/PERCORSO_DEL_TUO_FILE'
Ad esempio, se il mio file si chiama admin-style.css
e lo metto in una cartella chiamata css
, il mio percorso sarà:
get_template_directory_uri() . '/css/admin-style.css'
Spero sia utile!

posso chiedere, se voglio importare altri 3 fogli di stile. devo semplicemente aggiungere (x3) questa parte wp_register_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' );
o devo creare una funzione separata?

wp_register_style
immediatamente seguito dal relativo wp_enqueue_style
(come nella 'Prima soluzione') è assolutamente inutile e non fa nulla di più/diverso rispetto a usare semplicemente wp_enqueue_style
con tutti i parametri passati a wp_register_style
.

Se vuoi apportare modifiche CSS al pannello di amministrazione, incolla il seguente codice nel file functions.php del tuo child theme
add_action('admin_head', 'my_custom_fonts'); // admin_head è un hook, my_custom_fonts è la funzione che stiamo aggiungendo all'hook
function my_custom_fonts() {
echo '<style>
#posts-filter table.posts{
table-layout:auto;
}
</style>';
}

Per coloro che vogliono aggiungere un file CSS nell'area di amministrazione da un plugin personalizzato (o dalla cartella del plugin):
if (is_admin()) {
Ottieni il percorso del file se si trova in una cartella: (..myPluginFolder/myfolder/css/my.css)
$myCssFileSrc = plugins_url( '/myfolder/css/my.css', __FILE__ );
Ottieni il percorso del file se si trova nella cartella principale del plugin: (..myPluginFolder/my.css)
$myCssFileSrc = plugins_url( 'my.css', __FILE__ );
Inserisci (attiva) il file del foglio di stile:
wp_enqueue_style( 'my-css', $myCssFileSrc );
} //endif;
Tutte le manipolazioni devono essere fatte nel file principale del plugin (myplugin.php)

Non è lo stesso approccio che l'OP aveva nella domanda, che evidentemente non funzionava per loro?

L'approccio usato nella domanda non è corretto. Ho presentato un codice completamente testato personalmente e funzionante per collegare un file CSS alla parte amministrativa del sito. Questo è esattamente il modo raccomandato per farlo nella documentazione per la creazione di plugin: https://developer.wordpress.org/plugins/plugin-basics/determining-plugin-and-content-directories/

Posso confermare che il codice fornito da @tagformat.com è funzionante ed è il metodo raccomandato dal codex di WordPress, a patto che sia racchiuso in una funzione e che tu possa agganciare quella funzione alla tua azione di enqueue target. Altrimenti il CSS (o se si usano script) il file JS viene accodato troppo presto.
