Я создаю пользовательскую тему со страницей параметров темы.
Я хотел бы разработать страницу параметров и не хочу включать встроенные стили. Есть ли любой способ включать внешнюю таблицу стилей от, говорят
TEMPLATEPATH . '/css/admin.css'
Я также нашел этот блок кода, и это, кажется, работает - ссылка
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');
Каков лучший способ?
При создании администраторского плагина темы из шагов Кодекса Вы заметите, что он говорит для не вставки таблиц стилей согласно вышеупомянутому - хотя вышеупомянутое будет работать.
При размещении следующей внутренней части администраторский файл темы она будет служить той же цели, но использует подход wp_enqueue_styles:
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');
При регистрации страницы для администраторской области, с помощью add_submenu_page
или любой из другого add_{TYPE}_page
функционирует четвертый параметр принимает уникальный идентификатор, этот идентификатор определяет рычаг, который будет использовать Ваша зарегистрированная страница..
Если я должен был зарегистрировать опции, например:
add_options_page( 'Example Plugin Options', 'Example Plugin', 'manage_options', 'example-plugin-identifier', 'example_plugin_options' );
Различные рычаги затем доступны для той страницы а именно, вот всего несколько возможных действий для теперь зарегистрированной страницы.
// 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
}
Существует также admin_enqueue_scripts
рычаг, который обеспечивает название текущего дескриптора в строке/переменной, которую это передает функциям обратного вызова.
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
}
Вы не должны обычно должны быть использовать admin_head
,admin_print_scripts
или admin_print_styles
если у Вас нет конкретного требования, чтобы предназначаться для каждой страницы администрирования или выполнить условную логику в обратном вызове для предназначения для определенных зарегистрированных страниц.
Надежда, которая помогает..
WP предоставляет очередям для сценариев и стилей. Это позволяет присваивать версию URL, автоматически загружать зависимости, и т.д.
Посмотрите wp enqueue style()
в Кодексе для того, как правильно зарегистрировать Ваш стиль и загрузку только там, где Вам нужен он (на уровне Вашей пользовательской страницы и не всей администраторской области).
Да я отвечаю на свой собственный вопрос..., но я действительно заставлял его работать.
Добавьте это действие к functions.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');
<link>
теги самостоятельно.
– Jan Fabry
09.11.2010, 16:37