Я создаю пользовательскую тему со страницей параметров темы.
Я хотел бы стилизовать страницу параметров и не хочу включать встроенные стили. Есть ли способ включить внешнюю таблицу стилей, скажем,
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 :
Ах, хорошо, это имеет смысл. Вы можете обновить страницу Кодекса о создании темы администратора с помощью этого? codex.wordpress.org/Creating_Admin_Themes
Я, конечно, мог бы, но мне пришлось бы сесть и создать тему администратора, прежде чем я пойду рассказывать другим, как они должны это делать, если позволит время, я посмотрю, смогу ли я пересмотреть эту запись кодекса.
Здорово! @abrudtkuhl, я думаю, вам следует выбрать этот комментарий как правильный ответ, а не мой.
Если это решение работает для вас, вы должны нажать на галочку «Принять», чтобы другие знали, что вы больше не ищете его. Но также ознакомьтесь с другими ответами, они предлагают веские причины, по которым вам не следует писать
<link>
теги самостоятельно.При регистрации страницы для админки, использования
add_submenu_page
или любых другихadd_{TYPE}_page
функций четвертый параметр принимает уникальный идентификатор, этот идентификатор обозначает хук, который будет использовать ваша зарегистрированная страница.Если бы я зарегистрировал параметры, например:
Затем для этой страницы доступны различные хуки, вот лишь несколько возможных действий для уже зарегистрированной страницы.
Существует также
admin_enqueue_scripts
хук, который предоставляет имя текущего дескриптора в строке/переменной, которую он передает функциям обратного вызова.Как правило, вам не нужно использовать
admin_head
,admin_print_scripts
илиadmin_print_styles
если у вас нет особых требований для таргетинга на каждую административную страницу или выполнения условной логики внутри обратного вызова для таргетинга на определенные зарегистрированные страницы.Надеюсь, это поможет..
WP предоставляет очереди для скриптов и стилей. Это позволяет изменять версии URL-адресов, автоматически загружать зависимости и т. д.
Посмотрите
wp enqueue style()
в Кодексе, как правильно зарегистрировать свой стиль и загружать только там, где вам это нужно (на вашей пользовательской странице, а не во всей админке).Да, я отвечаю на свой вопрос… но я заставил его работать.
Добавьте это действие в файл functions.php вашей темы.