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_scripts
para 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_scripts
açã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'));
}
}