Enfileirar scripts / estilos em uma página de opções do WordPress

Minha aula básica para criar uma página de opções:

class WPHooks
{
const OPTION_PAGE_SLUG = 'rti_booker_sites';

public function registerHooks()
{
add_action
('admin_menu', array(&$this, 'adminMenu'));
}

public function adminMenu()
{
if (current_user_can('manage_options')) {
add_options_page
('Booker Site Manager', 'Booker Sites', 'manage_options',
self::OPTION_PAGE_SLUG, array(&$this, 'renderOptionsPage'));
}
}

public function renderOptionsPage()
{
require "OptionPage.php";
}

}

Se scripts sĂŁo necessários na página e ele apenas usa wp_enqueue_scriptspara adicioná-los, ele os colocará no rodapĂ© da página – isso nĂŁo Ă© tĂŁo ruim para scripts, mas muito indesejável para folhas de estilo.

Em vez disso, a maneira correta de enfileirar os scripts é fazer uso da admin_enqueue_scriptsação. Mas para garantir que os scripts sejam incluídos apenas para nossa página específica e não poluam outras páginas no administrador, use isto:

private $optionPageHookSuffix;

public function adminMenu()
{
$this
->optionPageHookSuffix = add_options_page('Booker Site Manager', 'Booker Sites', 'manage_options',
self::OPTION_PAGE_SLUG, array(&$this, 'renderOptionsPage'));
add_action
('admin_enqueue_scripts', array(&$this, 'enqueueScripts'));
}

public function enqueueScripts($hookSuffix)
{
if ($hookSuffix == $this->optionPageHookSuffix) {
wp_enqueue_script
('bootstrap-js', '//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js', ['jquery']);
wp_enqueue_script
('jquery-validation', RootsSageAssetsasset_path('scripts/jquery-validate.js'), ['jquery']);
wp_enqueue_style
('bootstrap', '//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css');
wp_enqueue_style
('admin-css', RootsSageAssetsasset_path('styles/admin-style.css'));
}
}