¿Cómo recuperar y mostrar datos de una tabla personalizada de base de datos en el área de administración?
Tengo un problema con un plugin que estoy desarrollando y me pregunto si alguien puede arrojar algo de luz sobre la situación, ya que muchas, MUCHAS búsquedas no han dado ningún resultado. :-/
Básicamente, mi plugin crea varias entidades personalizadas en la base de datos de WordPress, que funcionan bien. He añadido una función shortcode para agregar un formulario a una página para enviar información, que también funciona bien.
Mi problema es que cuando quiero recuperar datos de dichas entidades personalizadas y mostrarlas en la sección de administración de WordPress (ya sea en un widget del dashboard o en una página personalizada del plugin), no funciona. Punto final.
Mi función de ejemplo para recuperar los datos es la siguiente:
function showApplicants(){
global $wpdb;
$appTable = $wpdb->prefix . "applications";
$query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
$applications = $wpdb->get_results($query);
foreach ( $applications as $application )
{
echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
}
}
Curiosamente, cuando este código se coloca en una página fuera del área de administración de WordPress (por ejemplo, una página creada en WordPress, a través de una función shortcode (que simplemente muestra este código), o en una página que creo y agrego yo mismo con este código en la plantilla), ¡funciona! Recupera la información correcta y la muestra como se espera.
Si lo agrego a un widget del dashboard, no funciona. Si lo agrego a una página personalizada dentro de la sección de administración, tampoco funciona.
Estoy desconcertado. ¿Algún consejo?
PD - Para evitar confusiones, la variable global $wpdb está declarada más arriba en el código, así que no es necesario declararla nuevamente (aunque intenté declararla de nuevo dentro de la función y tampoco funcionó).
¡Cualquier ayuda será muy apreciada!
¡Muchas gracias!

Código funcional para agregar un widget al panel de WordPress con información de una base de datos personalizada:
/**
* Agrega un widget de aplicaciones al panel de control.
*/
function addApplicationWidget() {
wp_add_dashboard_widget(
'submitted_applications',
'Aplicaciones Enviadas',
'showApplicants'
);
}
add_action( 'wp_dashboard_setup', 'addApplicationWidget' );
function showApplicants() {
global $wpdb;
$appTable = $wpdb->prefix . "applications";
$query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
$applications = $wpdb->get_results($query);
foreach ( $applications as $application ) {
echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
}
}
