Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/08/2016, 09:05
Avatar de fakulicious
fakulicious
 
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 16 años
Puntos: 2
Leer datos de dos tablas de WP

Hola foro!
Necesito hacer una consulta a la base de datos asociando dos tablas de WP: wp_posts y wp_postmeta.

Los pongo un poco en contexto: estoy desarrollando la web de un evento, con el tema Gather, que viene con un plugin para que las personas se registren en el evento. Pero este plugin no trae ningún módulo donde pueda visualizar o exportar en forma de listado o tabla todos los inscriptos al evento.

Este plugin crea un post con el post_type "cth_eventres", y en la tabla wp_postmeta guarda toda la información de la persona (nombre, apellido, email, etc)

Por ejemplo:

wp_posts
ID: 2222
post_type: cth_eventres

wp_postmeta
meta_id: 1111
post_id: 2222
meta_key: pur_fname
meta_value: Juan

meta_id: 1112
post_id: 2222
meta_key: pur_lname
meta_value: Perez

meta_id: 1113
post_id: 2222
meta_key: pur_email
meta_value: [email protected]

Es decir, por cada persona que se inscribe al evento crea un registro en la tabla wp_posts y varios registros (uno por cada dato de la persona) en la tabla wp_postmeta.

Lo que necesito hacer es un script en PHP, por fuera del Wordpress, que recorra todas las personas que se registraron en wp_posts y que por cada una me muestre los datos de esa persona.

(ACLARO: solo utilicé nombre, apellido y email para ejemplificar, pero los datos son muchos más)

Ya intenté haciendo dos consultas, con un while dentro de otro, y no funciona. Este es el código, seguro está mal.

Código PHP:
<?php

$link
=mysql_connect("localhost","usuario","pass");

mysql_select_db("basededatos",$link) OR DIE ("Error: No es posible establecer la conexión");

$consulta mysql_query("SELECT ID FROM wp_post WHERE post_type='cth_eventres'"$link);
echo 
'<ul>';
while(
$row mysql_fetch_array($consulta)){
    
$id_registro $row[0];
    
$datos mysql_query("SELECT meta_key, meta_value FROM wp_postmeta WHERE post_id = $id_registro;"$link);
    while(
$campo mysql_fetch_array($datos)){
        echo 
'<li>Nombre: ';
        if(
$campo[0] == 'pur_fname'){
            echo 
$campo[1];
        }
        echo 
'</li>';
    }
}
echo 
'</ul>';

?>
¿Alguna idea?

Gracias foro!
__________________
Facundo
http://www.creactivo.com.ar