Adăugarea unei foi de stil personalizate în wp-admin

20 aug. 2013, 17:59:24
Vizualizări: 117K
Voturi: 41

Am probleme în a face să funcționeze foaia mea de stil personalizată în zona WP-ADMIN. plugins_url('style.css', __FILE__) trebuie să creez un folder în plugin-ul meu numit css sau doar copiez fișierul .css în directorul wp-admin/css?

Am încercat ambele variante și nu pare să funcționeze pentru mine.

și ce valori ar trebui să înlocuiască __FILE__?

Scuze, sunt destul de nou în aceste lucruri.

/*ADAUGĂ FOAIA DE STIL ÎN 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__) );
    }


/*ADAUGĂ BARA MEA DE NAVIGARE PERSONALIZATĂ ÎN WP-ADMIN*/
add_action('admin_head', 'custom_nav');
function custom_nav(){
    include('custom_nav.html');

}
0
Toate răspunsurile la întrebare 3
3
60

Conform WordPress Codex (aici):

admin_enqueue_scripts este prima acțiune conectată la acțiunile de scripturi din admin.

Exemplu

Încărcarea unui fișier CSS sau JS pentru întreaga zonă de administrare:

//din functions.php

//Prima soluție: un singur fișier
//Dacă folosești un child theme, poți utiliza:
// get_stylesheet_directory_uri() în loc de 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' );
    //SAU
    wp_enqueue_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' );
}

//A doua soluție: două sau mai multe fișiere.
//Dacă folosești un child theme, poți utiliza:
// get_stylesheet_directory_uri() în loc de 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' );
}

trebuie să creez un folder în plugin-urile mele numit css sau doar copiez fișierul meu .css în directorul wp-admin/css?

Nu, pune fișierul tău CSS împreună cu celelalte, în directorul temei tale, apoi specifică calea cu:

get_template_directory_uri() . '/CĂTRE_FIȘIERUL_TAU'

De exemplu, dacă fișierul meu se numește admin-style.css și l-am pus într-un folder numit css, calea mea va arăta astfel:

get_template_directory_uri() . '/css/admin-style.css'

Sper că te-am ajutat!

20 aug. 2013 18:21:28
Comentarii

pot să întreb, dacă vreau să import încă 3 fișiere de stiluri. adaug pur și simplu (de 3 ori) această parte wp_register_style( 'admin_css', get_template_directory_uri() . '/admin-style.css', false, '1.0.0' ); sau o funcție separată?

user1933824 user1933824
20 aug. 2013 18:50:14

wp_register_style urmat imediat de wp_enqueue_style corespunzător (ca în 'Prima soluție') este absolut inutil și nu face nimic mai mult/diferit decât să folosești direct wp_enqueue_style cu toți parametrii pasați la wp_register_style.

gmazzap gmazzap
2 sept. 2013 07:16:49

Pentru că folosesc un child theme am schimbat funcția de cale în get_stylesheet_directory_uri()

Cazuma Nii Cavalcanti Cazuma Nii Cavalcanti
19 iun. 2017 18:21:08
1
16

Dacă dorești să faci modificări CSS pentru panoul de administrare, inserează codul de mai jos în fișierul functions.php al temei copil.

add_action('admin_head', 'my_custom_fonts'); // admin_head este un hook, my_custom_fonts este o funcție pe care o adăugăm la hook

function my_custom_fonts() {
  echo '<style>
    #posts-filter table.posts{
        table-layout:auto;   
    }
  </style>';
}
12 feb. 2019 09:45:26
Comentarii

Mulțumesc pentru soluția rapidă!

NSukonny NSukonny
10 ian. 2020 07:15:19
3

Pentru cei care doresc să adauge un fișier CSS în zona de administrare dintr-un plugin personalizat (sau din folderul unui plugin):

if (is_admin()) {

Obține sursa fișierului dacă acesta se află într-un folder: (..myPluginFolder/myfolder/css/my.css)

$myCssFileSrc = plugins_url( '/myfolder/css/my.css', __FILE__ );

Obține sursa fișierului dacă acesta se află în folderul rădăcină al pluginului: (..myPluginFolder/my.css)

$myCssFileSrc = plugins_url( 'my.css', __FILE__ );

Încarcă (activează) fișierul de stiluri:

wp_enqueue_style( 'my-css', $myCssFileSrc );
} //endif;

Toate aceste manipulări se fac în fișierul principal al pluginului (myplugin.php)

25 oct. 2020 13:02:47
Comentarii

Nu este aceeași abordare pe care a avut-o OP în întrebare, care nu a funcționat pentru ei?

Rup Rup
25 oct. 2020 14:38:42

Abordarea folosită în întrebare nu este corectă. Am prezentat un cod complet, testat personal și funcțional pentru conectarea unui fișier CSS la partea de administrare a site-ului. Exact așa este recomandat să faceți în documentația pentru crearea de plugin-uri: https://developer.wordpress.org/plugins/plugin-basics/determining-plugin-and-content-directories/

tagformat.com tagformat.com
25 oct. 2020 18:29:03

Pot confirma că codul furnizat de @tagformat.com este funcțional și reprezintă metoda recomandată de WordPress Codex, cu condiția să fie încapsulat într-o funcție și să conectați acea funcție la acțiunea de înregistrare dorită. În caz contrar, fișierul CSS (sau JS, dacă folosiți scripturi) va fi încărcat prea devreme.

BillieM BillieM
23 ian. 2023 23:58:16