Ajout d'une page d'administration personnalisée

12

Je veux ajouter une page de contenu (un fichier lisez-moi) dans l'administrateur WordPress, je n'arrive pas à trouver comment faire cela dans le codex - quelqu'un peut-il m'orienter dans la bonne direction? Ce sera littéralement une simple page avec quelques paragraphes de contenu.

user319940
la source

Réponses:

18

Vous n'avez besoin que de deux étapes:

  1. Accrochez-vous à l'action admin_menu, enregistrez la page avec une fonction de rappel pour imprimer le contenu.
  2. Dans votre fonction de rappel, chargez le fichier depuis plugin_dir_path( __FILE__ ) . "included.html".

Code de démonstration:

add_action( 'admin_menu', 'wpse_91693_register' );

function wpse_91693_register()
{
    add_menu_page(
        'Include Text',     // page title
        'Include Text',     // menu title
        'manage_options',   // capability
        'include-text',     // menu slug
        'wpse_91693_render' // callback function
    );
}
function wpse_91693_render()
{
    global $title;

    print '<div class="wrap">';
    print "<h1>$title</h1>";

    $file = plugin_dir_path( __FILE__ ) . "included.html";

    if ( file_exists( $file ) )
        require $file;

    print "<p class='description'>Included from <code>$file</code></p>";

    print '</div>';
}

J'ai ajouté un exemple à mon plugin de démonstration T5 Admin Menu Demo pour montrer comment faire cela dans un sous-menu et dans un style POO.

fuxia
la source
Je viens d'essayer cela et ça a l'air génial, mais est-il possible d'avoir cela dans le sous-menu de mon type de message personnalisé? plutôt que d'être un menu pour lui-même.
user319940
J'ai essayé 'show_in_menu' dans le type de message personnalisé, mais cela a alors un menu qui n'affiche pas la page et n'affiche pas non plus "ajouter nouveau" pour le type de message personnalisé.
user319940
Résolu! pour quelqu'un d'autre, essayez add_submenu_page et ajoutez simplement le paramètre supplémentaire pour le slug parent, comme indiqué ici: codex.wordpress.org/Function_Reference/add_submenu_page
user319940