¿Cómo Obtener Datos de la Base de Datos de WordPress Usando la Consulta $wpdb?

27 sept 2014, 16:59:06
Vistas: 36.5K
Votos: 1

Estoy tratando de obtener algunos datos de las tablas de la base de datos de WordPress en un plugin. Para eso, estoy usando el siguiente código...

global $wpdb;
$findID = $wpdb->get_var("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $findID;

Pero no me está devolviendo el ID del post en el echo. ¿Hay algo mal...???

2
Comentarios

Verifiqué nuevamente y descubrí que era un problema en mi código. Después de corregirlo, la solución superior también funciona. También puedes utilizar la respuesta de abajo...

Muhammad Hassan Muhammad Hassan
29 sept 2014 07:29:32

@ialocin Ok. Hecho...

Muhammad Hassan Muhammad Hassan
2 oct 2014 07:27:59
Todas las respuestas a la pregunta 2
1

Solo para aclarar, el método get_var() de $wpdb funciona perfectamente en este contexto:

global $wpdb;
$helloworld_id = $wpdb->get_var("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $helloworld_id;

De hecho, es más práctico en este contexto, porque devuelve una única variable, que es exactamente lo que se necesita.

27 sept 2014 20:52:16
Comentarios

Gracias por confirmarme que compartí el código correcto pero el problema estaba en mis otros códigos, así que ahora está bien...

Muhammad Hassan Muhammad Hassan
2 oct 2014 07:28:33
3

Encontré la solución y la consulta correcta para obtener un dato de la base de datos de WordPress es la siguiente.

global $wpdb;
$findID = $wpdb->get_results("SELECT ID FROM wp_posts WHERE post_name = 'hello-world'");
echo $findID[0]->ID;
27 sept 2014 18:00:37
Comentarios

No sé cuál era/es el problema en tu configuración, pero usar get_var debería funcionar bien. No debería ser necesario usar get_results, que en este escenario además es un poco poco práctico.

Nicolai Grossherr Nicolai Grossherr
27 sept 2014 20:54:07

Revisé nuevamente y descubrí que era un problema en mi código, y después de solucionarlo, la primera opción también funciona correctamente.

Muhammad Hassan Muhammad Hassan
2 oct 2014 07:29:29

la sintaxis correcta es

global $wpdb; $tableName = $wpdb->prefix . 'leaguemanager_person_status'; $findID = $wpdb->get_results("SELECT ID FROM $tableName WHERE post_name = 'hello-world'"); echo $findID[0]->ID;

digitalzoomstudio digitalzoomstudio
18 jul 2021 15:54:48