Cómo mostrar información de una tabla de la base de datos de Wordpress en una página de un blog

KnxDT Seguir

Zeta
SEO
Verificación en dos pasos desactivada
Desde
21 Abr 2009
Mensajes
1.730
Intentaré simplificar mi pregunta. Lo que deseo es tener una página dentro de un blog donde se muestre información de una tabla cualquiera de la base de datos de Wordpress.

Lo que deseo es mostrarlo en la dirección blog.com/faq por decir algo, sin embargo me puse a hacer pruebas con un sencillo index.php en la carpeta faq (que he creado en la raíz del sitio) y siempre se me muestra el siguiente error:

Fatal error: Call to a member function get_var() on a non-object in C:\wamp\www\blog\faq\index.php on line 6

Como ven, lo estoy probando localmente. Creé El código del index.php al cual hace referencia es el siguiente:

<?php

global $wp_query;
global $wpdb;

$name = $wpdb->get_var("SELECT name FROM $wpdb->terms WHERE term_ID=4");
echo $name;

?>

Estuve leyendo por 3 horas sobre el tema pero ya no me doy ideas de qué puede ser lo que esté fallando. Hasta donde estuve leyendo solo necesitaría el $wpdb para que funcione la conexión (le agregué el $wp_query solo para probar), sin embargo me anda mostrando ese error persistentemente. Lo más extraño es que hice que imprimiera ese php dentro del panel de mi plugin y lo hizo sin problemas.

Lo que se podría hacer, usando prácticamente la brutalidad, sería crear una propia cadena de conexión (poniendo password, usuario, base de datos, etc.) para conectarme directamente a la base de datos, pero quiero evitarlo por cuestiones de configuración simple y de seguridad.

¿Alguna idea de cual pueda ser el problema? Cualquier indicio es bienvenido :)

Referencia: Function Reference/wpdb Class WordPress Codex
 

alex

1
Zeta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Desde
7 Abr 2009
Mensajes
1.777
Ejem, yo no veo ningún include al wp-config.php
 

Michoacano

Épsilon
Verificación en dos pasos desactivada
Desde
7 Abr 2009
Mensajes
761
Yo agregaria el codigo al archivo de tu tema. Más especificicamente el de las paginas que es page.php creo.

Bueno el chiste es que el codigo que debes poner es el ID de la pagina y deberia ser algo asi.

PHP:
if (id_de_la_pagina_de_facs){
//Jalar información de la BD de wordpress

}else {
//Codigo de las paginas normales
}

Y asi usas el mismo wordpress y te ahorrar crear archivos externos a wordpress.
 

KnxDT

Zeta
SEO
Verificación en dos pasos desactivada
Desde
21 Abr 2009
Mensajes
1.730
Ejem, yo no veo ningún include al wp-config.php

Gracias. Era eso. Ahora solo tengo un problema recurrente de mostrar caracteres con cierta codificación en MySql.

Yo agregaria el codigo al archivo de tu tema. Más especificicamente el de las paginas que es page.php creo.

Bueno el chiste es que el codigo que debes poner es el ID de la pagina y deberia ser algo asi.

PHP:
if (id_de_la_pagina_de_facs){
//Jalar información de la BD de wordpress

}else {
//Codigo de las paginas normales
}

Y asi usas el mismo wordpress y te ahorrar crear archivos externos a wordpress.

El problema es que no pertenecía al theme, como había mencionado.

Saludos.
 

KnxDT

Zeta
SEO
Verificación en dos pasos desactivada
Desde
21 Abr 2009
Mensajes
1.730
Perdonando el doblepost. Al final me comentaron que los datos deben ser mostrados desde dentro del panel de WP, de modo que ya no hubo el problema del wp-config, sin embargo tengo problemas al hacer mi llamada a mis propias tablas.

Esto sí funciona:

<?php
global $wpdb;

$results = $wpdb->get_results("SELECT * FROM ".$wpdb->posts." WHERE post_status = 'publish' AND post_author = '1' ORDER BY post_date DESC;");

foreach ($results as $post) {
echo '<li><a href="'.$post->guid.'">'.$post->post_title.'</a></li>';
}
echo "</ul>";
?>

Esto no

<?php
global $wpdb;

$results2 = $wpdb->get_results("SELECT * FROM ".$wpdb->kmfaq." WHERE ID= '1';");

echo $results2;

foreach ($results2 as $post2) {
echo '<li><a href="'.$post2->ID.'">'.$post2->Titu_Pgta.'</a></li>';
}
echo "</ul>";
?>

Si se dan cuenta básicamente es lo mismo, solo que he cambiado la tabla por una mía propia, sin embargo no se muestra nada u_u en la salida.

Debo comentar que la estructura de la tabla personalizada de WP es:

Codi_Pgta mediumint(9)
Titu_Pgta varchar(100)
Rpta_Pgta longtext
Area_Pgta varchar(35)
ID mediumint(9)

Obviamente esta tabla está dentro de la base de datos de WP pero aún así sigue sin mostrar ningún dato (con o sin filtro WHERE).
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba