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>';
?>
Gracias foro!