Muchas gracias chicos, finalmente conseguí solucionarlo, de una manera un poco cutre, pero me valió para salir del apuro y entregar el trabajo.
Cuando tenga algo de más tiempo (y me empape más sobre php) intentaré modificar el script con los consejos que me habéis dado y optimizarlo, aunque por ahora parece que va bien y no ha afectado en la carga de las páginas ni nada por estilo, estoy segurísimo de que se podría mejorar bastante y no repetir tanto.
Básicamente lo que hice fue crear nuevas columnas en la tabla donde tenía la info de los productos, y pasar de una tabla a otra los valores que necesitaba.
Código PHP:
//Pasamos datos de una tabla a otra para actualizar todos los eventos
// Actualizamos el valor de los stocks
$stock = mysql_query("UPDATE wp_posts SET wp_posts.stock = (SELECT wp_postmeta.meta_value
FROM wp_postmeta
WHERE wp_posts.post_type = 'product'
AND wp_posts.post_status = 'publish'
AND wp_posts.ID = wp_postmeta.post_id
AND wp_postmeta.meta_key = '_stock'
AND wp_postmeta.meta_value != ''
GROUP BY wp_postmeta.meta_value
LIMIT 0 , 30)") or die(mysql_error());
// Actualizamos el valor de los precios
$precio = mysql_query("UPDATE wp_posts SET wp_posts.precio = (SELECT wp_postmeta.meta_value
FROM wp_postmeta
WHERE wp_posts.post_type = 'product'
AND wp_posts.post_status = 'publish'
AND wp_posts.ID = wp_postmeta.post_id
AND wp_postmeta.meta_key = 'precio'
AND wp_postmeta.meta_value != ''
GROUP BY wp_postmeta.meta_value
LIMIT 0 , 30)") or die(mysql_error());
...
Sacar los datos y meterlos en un array:
Código PHP:
$resultados = mysql_query("SELECT post_title, guid, precio, edad, imagen, fecha_evento, ciudad, consumicion, sexo_1, sexo_2, plazas_sexo_1, plazas_sexo_2
FROM wp_posts
WHERE post_type = 'product'
AND post_status = 'publish'") or die(mysql_error());
while ($eventos = mysql_fetch_array($resultados)) {
$datos_seleccionados[] = array(
'post_title' => $eventos['post_title'],
'guid' => $eventos['guid'],
'precio' => $eventos['precio'],
'imagen' => $eventos['imagen'],
...);
}
Y foreach para imprimirlos en pantalla:
Código PHP:
$i = 0;
foreach ($datos_seleccionados as $eventos){
$i++;
?>
<div id="eventos_top">
<div class="row">
<div class="two columns">
<div class="evento_titulo">
<h5><?php echo $eventos['post_title']; ?></h5>
</div>
</div>
...
</div>
</div>
<?php
}
?>
El script era por facilitarle un poco la vida al cliente, para que cuando añadiera un producto (evento) en Woocoomerce, se actualizaran automáticamente esos valores una lista de eventos en el home.
Algo así quedó sin CSS:
En principio doy el tema por solucionado, pero si veis que el script pudiera causar algún problema de lógica (que ya me has dejado con la mosca tras la oreja Djoaq

) o algo parecido, os agradecería que me lo indicarais.
Saludos!