it-swarm.dev

Včetně CSS a JS na obrazovce Správce možností vlastního motivu

Vytvářím vlastní motiv pomocí stránky možností motivu.

Chtěl bych styl stránky možností a nechcete zahrnout inline styly. Existuje nějaký způsob, jak zahrnout externí stylesheet od říct

TEMPLATEPATH . '/css/admin.css'

Také jsem našel tento kus kódu a zdá se, že funguje - link

function admin_register_head() {
 $siteurl = get_option('siteurl');
 $url = $siteurl . '/wp-content/plugins/' . basename(dirname(__FILE__)) . '/yourstyle.css';
 echo "<link rel='stylesheet' type='text/css' href='$url' />\n";
}
add_action('admin_head', 'admin_register_head');

Jaký je nejlepší způsob?

4
abrudtkuhl

Pokud vytvoříte plugin pro administrátorské téma z kroků Codexu, všimnete si, že neuvádí styly podle výše - i když výše uvedené bude fungovat.

Pokud umístíte následující do svého souboru motivu admin, bude sloužit stejnému účelu, ale použije wp_enqueue_styles approach:

function add_admin_theme_styles() {
    wp_register_style($handle = 'mytheme-theme-admin-styles', $src = plugins_url('wp-admin.css', __FILE__), $deps = array(), $ver = '1.0.0', $media = 'all');
    wp_enqueue_style('mytheme-theme-admin-styles');}
    add_action('admin_print_styles', 'add_admin_theme_styles');
3
davemac

Při registraci stránky pro oblast admin pomocí add_submenu_page nebo některého z dalších funkcí add_{TYPE}_page čtvrtý parametr přijme jedinečný identifikátor, tento identifikátor označuje háček, který bude vaše registrovaná stránka používat.

Pokud bych měl/a registrovat možnosti, například:

add_options_page( 'Example Plugin Options', 'Example Plugin', 'manage_options', 'example-plugin-identifier', 'example_plugin_options' );

Různé háčky jsou pak k dispozici pro tuto stránku konkrétně, zde je jen několik možných akcí pro nyní registrované stránky.

// load-{HANDLE}
add_action( 'load-example-plugin-identifier', 'example_plugin_callback' );
// admin_head-{HANDLE}
add_action( 'admin_head-example-plugin-identifier', 'example_plugin_callback' );
// admin_print_scripts-{HANDLE}
add_action( 'admin_print_scripts-example-plugin-identifier', 'example_plugin_callback' );
// admin_print_styles-{HANDLE}
add_action( 'admin_print_styles-example-plugin-identifier', 'example_plugin_callback' );

function example_plugin_callback() {

    // Run your code here

}

Je zde také háček admin_enqueue_scripts, který poskytuje název aktuálního popisovače v řetězci/proměnné, který přechází na funkce zpětného volání.

add_action( 'admin_enqueue_scripts', 'example_plugin_callback' );

function example_plugin_callback( $handle ) {

    // If the handle is not the page registered earlier, return
    if( 'example-plugin-identifier' =! $handle )
        return;

    // Run your code here

}

Neměli byste obvykle potřebovat admin_head, admin_print_scripts nebo admin_print_styles, pokud nemáte specifický požadavek cílit každou administrační stránku nebo provádět podmíněnou logiku uvnitř zpětného volání pro cílení na konkrétní registrované stránky.

Doufám, že to pomůže ..

4
t31os

WP poskytuje fronty pro skripty a styly. Umožňuje verzi URL, automatické načítání závislostí atd.

Viz wp enqueue style() v Codexu, jak správně zaregistrovat svůj styl a načíst pouze tam, kde ho potřebujete (na vlastní stránce a ne ve všech oblastech admin).

3
Rarst

Ano, odpovídám na svou vlastní otázku ... ale nechal jsem to do práce.

Tuto akci přidejte do souboru theme.php

function admin_register_head() {
    $url = get_bloginfo('template_directory') . '/css/admin.css';
    echo "<link rel='stylesheet' type='text/css' href='$url' />\n";
}
add_action('admin_head', 'admin_register_head');
1
abrudtkuhl