Cita:
Iniciado por AlejandroGalvez Me disculpo, no tenía mucho tiempo para responder (igual que ahora) y lo dejé todo un poco en el aire.
La información de las imágenes se almacena como un post en la tabla
wp_posts y se pueden identificar puesto que su propiedad
post_type guarda el valor
attachment. Por tanto para obtener una imagen debes de:
- Con la ID del post puedes recuperar su meta (si existe) _thumbnail_id de la tabla wp_postmeta. Solo deberás recuperar el registro relacionándolo mediante la columna post_id = id del post acual y la columna meta_key = _thumbnail_id.
- Del registro deberás obtener la columna meta_value que guarda la ID de la imagen en la tabla wp_posts.
- Ahora que tienes la ID de la imagen destacada de tu post solo debes recuperar su información de la tabla wp_posts a través del campo ID y el campo post_type = attachment (para mayor seguridad, aunque con la ID absoluta no necesitarás esta comprobación).
- Puedes obtener la URL absoluta de la imagen del campo guid. Aunque si quieres la relativa al dominio original deberías volver a la tabla wp_postmeta y consultar con la ID de la imagen y el meta_key _wp_attached_file para obtener su meta_value que guarda la ruta relativa.
Todo esto puedes verlo en el enlace que te pasé sobre las tablas de WordPress:
http://codex.wordpress.org/Database_Description
Realmente no es difícil, todo se puede hacer en una sola consulta MySQL emparejando registros. Si no tienes muy claro como realizar consultas combinadas a varias tablas dilo y te aclaramos.
Suerte.
Gracias, me has puesto sobre la pista y ahora estoy trabajando con este código:
Código PHP:
SELECT a.post_title title, max(c.guid) img_url, a.ID id
FROM wp_posts a
LEFT JOIN
(select post_parent, max(post_date_gmt) as latest_image_date from wp_posts
where post_type='attachment' GROUP BY post_parent) b
on a.id=b.post_parent
LEFT JOIN wp_posts c
on c.post_parent=a.id
and c.post_type='attachment'
and b.latest_image_date = c.post_date_gmt where c.guid IS NOT NULL
GROUP BY a.post_title ORDER BY a.ID DESC limit 5
El problema es que no sé cómo mostrar la URL de la imagen. Sé que es una tontería pero funciona perfecto en SQL y no sé qué campo debo mostrar en mi echo....
Gracias de nuevo.