Je veux nettoyer les options de mon thème car je ne peux pas tout garder en mémoire. Comment puis-je faire en sorte que mon page_callback soit lié à un fichier au lieu d'un rappel?
Je sais que je pourrais inclure le fichier dans le rappel, mais pourquoi si je peux simplement appeler le fichier ici?
add_submenu_page(
null // -> Set to null - will hide menu link
, 'Page Title' // -> Page Title
, 'Menu Title' // -> Title that would otherwise appear in the menu
, 'administrator' // -> Capability level
, 'menu_handle' // -> Still accessible via admin.php?page=menu_handle
, 'page_callback' // -> To render the page
);
Au lieu de courir jusqu'à trac et de me plaindre d'une fonctionnalité manquante, je suggère d'utiliser une construction OOP:
// File: base.class.php
abstract class wpse67649_admin_page_base
{
public function add_page()
{
add_submenu_page(
null // -> Set to null - will hide menu link
,'Page Title' // -> Page Title
,'Menu Title' // -> Title that would otherwise appear in the menu
,'administrator' // -> Capability level
,'menu_handle' // -> Still accessible via admin.php?page=menu_handle
,array( $this, 'render_page' ) // -> To render the page
);
}
// Must get defined in extending class
abstract function render_page();
}
// File: ___sub_page.class.php
class wpse67649_render_sub_page extends wpse67649_admin_page_base
{
public function __construct()
{
add_action( 'admin_init', array( $this, 'add_page' ) );
}
public function render_page()
{
// You have access to every $this->class_var from your parent class
?>
<div class="wrapper>
<!-- do funky page rendering -->
</div>
<?php
}
}
Ce n'est pas la dernière chose à faire, mais cela devrait vous amener sur la route pour mieux organiser les choses.
En termes simples - parce que le rappel est suffisant pour tout faire, y compris le chargement de fichier. :) Cela ne vaut pas la peine de compliquer la logique pour quelque chose qui est déjà non seulement possible mais trivial.