Agregar una página de administración personalizada

12

Quiero agregar una página de contenido (un archivo léame) en el administrador de WordPress, parece que no puedo encontrar cómo hacer esto en el códice. ¿Alguien puede señalarme en la dirección correcta? Literalmente será una página simple con algunos párrafos de contenido.

usuario319940
fuente

Respuestas:

18

Solo necesitas dos pasos:

  1. Enganche a la acción admin_menu, registre la página con una función de devolución de llamada para imprimir el contenido.
  2. En su función de devolución de llamada, cargue el archivo plugin_dir_path( __FILE__ ) . "included.html".

Código de demostración:

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>';
}

Agregué un ejemplo a mi plugin de demostración T5 Admin Menu Demo para mostrar cómo hacer esto en un submenú y en un estilo OOP.

fuxia
fuente
Acabo de probar esto y se ve increíble, pero ¿hay alguna forma de tener esto en el submenú de mi tipo de publicación personalizada? en lugar de ser un menú en sí mismo.
user319940
He intentado 'show_in_menu' en el tipo de publicación personalizada, pero luego tiene un menú que no muestra la página y tampoco muestra "agregar nuevo" para el tipo de publicación personalizada.
user319940
Resuelto! para cualquier otra persona, pruebe add_submenu_page y simplemente agregue el parámetro adicional para la babosa principal, como se describe aquí: codex.wordpress.org/Function_Reference/add_submenu_page
user319940