Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2012, 06:04
m0nd
 
Fecha de Ingreso: marzo-2012
Mensajes: 14
Antigüedad: 12 años, 1 mes
Puntos: 4
Añadir páginas al plugin sin que aparezcan en el menú del backend

Hola,

Estoy haciendo un plugin y tengo un pequeño problema que me está retrasando en el desarrollo global del proyecto.
He aprendido cómo añadir opciones al menú del plugin. Básicamente, creando una función y luego anclándola en el menú interno con add_menu_page o add_submenu_page. Ahora mismo tengo 4 opciones en el plugin, quedando de esta manera:



El problema que tengo es que toda función que añada se me va a ver en el menú lateral y ahora mismo cuento con 2 funciones a las que debo llamar (y visualizar como página en el backend) pero no deben aparecer en el menú.
Son las que aparecen señaladas, y en este caso en concreto es porque al pinchas en "editar" o en "borrar" desde el listado la función recibe el id de la fila que quiero editar o borrar, mientras que si escojo una de esas opciones desde el menú evidentemente no se la relaciona con ningún id.

¿Existe alguna manera de que WordPress trate una función del plugin como una página interna (similar a add_menu_page o add_submenu_page) pero SIN figurar en el menú de opciones lateral?

Añado el código de la función que tengo para "borrar":

Código PHP:
function borrar_partner() { ?>
    <div class="wrap">
        <?php
        
global $wpdb;
        
$tabla_empresas $wpdb->prefix "gp_empresas";
        
        if(isset(
$_GET['id'])) {
            
$id_empresa $_GET['id'];
            
$myrow $wpdb->get_row($wpdb->prepare("SELECT * FROM `$tabla_empresas` WHERE `id_empresa`='$id_empresa'"));
            
$nombre $myrow->nombre;
            
            if(isset(
$_POST['borrar'])) {
                
$sql "DELETE FROM `$tabla_empresas` WHERE `id_empresa`='$id_empresa'";
                
$wpdb->query($sql); ?>
                
                <div class="mensaje">
                    Se ha eliminado el partner <strong><?php echo "$nombre"?></strong> del directorio de empresas
                </div>
                </br>
                <?php page_ppal(); // Esta función muestra el listado completo de filas
            
}
            else {
                
?>
                <h2>Borrar partner</h2>
                <p>Has indicado que quieres borrar la siguiente empresa de la base de datos:<p>
                <p>ID: <?php echo "<strong>$id_empresa</strong>  ";?> Nombre: <?php echo "<strong>$nombre</strong>"?></p>
                <form method="post" action="" />
                    <?php submit_button__'Confirmar borrado'), 'primary''borrar'true); ?>
                </form>
            <?php
            
}
        } else {
            echo 
"ERROR: El formulario no ha recibido id mediante \$_GET[id]";
            echo 
"</br>";
        } 
?>
    </div>
<?php
}
Y la añado al menú del plugin con add_submenu_page:

Código PHP:
function  menu_plugin_partners() {
    
add_menu_page('Partners''Partners'2__FILE__'page_ppal');
    
add_submenu_page(__FILE__'partners''A&ntilde;adir partner'10'add-partner''add_partner');
    
add_submenu_page(__FILE__'partners''Editar partner'10'edit-partner''edit_partner');
    
add_submenu_page(__FILE__'partners''Borrar partner'10'borrar-partner''borrar_partner');
}

add_action('admin_menu''menu_plugin_partners'); 
He probado a meter en 2 archivos las funciones de borrar y editar, pero al intentar acceder a ellos me sale que no tengo permisos para tal operación ><

Saludos y gracias de antemano.