Obtener la Imagen Destacada mediante consulta SQL directa
Sé que se pueden usar los métodos de WordPress para obtener una imagen destacada, sin embargo, en este proyecto en particular necesito obtener la imagen destacada mediante una consulta mysql. ¿Alguien puede orientarme en la dirección correcta? Gracias.
Esto es lo que tengo hasta ahora pero mi consulta no está funcionando. Tengo el $post->id almacenado como una variable llamada $da_id
$Featured_image = $wpdb->get_results("
SELECT *
FROM net_5_postmeta
INNER JOIN net_5_posts ON net_5_postmeta.post_id=net_5_posts.ID
WHERE post_parent = $da_id
AND meta_key = '_wp_attached_file'
ORDER BY post_date
DESC LIMIT 15",'ARRAY_A');

Una solución relacionada, para consultar publicaciones SIN proporcionar un ID de publicación (ordenadas por fecha de publicación y usando el prefijo de base de datos wp_):
SELECT
p1.*,
wm2.meta_value
FROM
wp_posts p1
LEFT JOIN
wp_postmeta wm1
ON (
wm1.post_id = p1.id
AND wm1.meta_value IS NOT NULL
AND wm1.meta_key = "_thumbnail_id"
)
LEFT JOIN
wp_postmeta wm2
ON (
wm1.meta_value = wm2.post_id
AND wm2.meta_key = "_wp_attached_file"
AND wm2.meta_value IS NOT NULL
)
WHERE
p1.post_status="publish"
AND p1.post_type="post"
ORDER BY
p1.post_date DESC

$Featured_image = $wpdb->get_results("
SELECT p.*
FROM net_5_postmeta AS pm
INNER JOIN net_5_posts AS p ON pm.meta_value=p.ID
WHERE pm.post_id = $da_id
AND pm.meta_key = '_thumbnail_id'
ORDER BY p.post_date DESC
LIMIT 15
",'ARRAY_A');
Traducción de los comentarios:
- La variable `$Featured_image` obtendrá los resultados de la consulta SQL
- La consulta busca imágenes destacadas asociadas a un post específico
- Se hace un JOIN entre las tablas postmeta y posts
- Filtra por el ID del post (`$da_id`) y por la clave meta '_thumbnail_id'
- Ordena por fecha de publicación descendente
- Limita a 15 resultados
- Devuelve los resultados como un array asociativo ('ARRAY_A')
Traducción de strings dentro del código:
- `SELECT` → `SELECCIONAR` (aunque normalmente se deja en inglés en SQL)
- `FROM` → `DESDE` (se suele dejar en inglés)
- `INNER JOIN` → `UNIÓN INTERNA` (se suele dejar en inglés)
- `WHERE` → `DONDE` (se suele dejar en inglés)
- `AND` → `Y` (se suele dejar en inglés)
- `ORDER BY` → `ORDENAR POR` (se suele dejar en inglés)
- `DESC` → `DESCENDENTE` (se suele dejar en inglés)
- `LIMIT` → `LÍMITE` (se suele dejar en inglés)
Nota: En la práctica, las palabras clave SQL generalmente se mantienen en inglés incluso en entornos de habla hispana.

Gracias nuevamente Eugene, marqué como correcta pero desafortunadamente no tengo suficiente reputación para votar positivamente, pero estoy seguro que esto ayudará a otros. El código anterior es particularmente útil en un entorno MU cuando necesitas consultar imágenes destacadas de otros blogs. Me encanta. Ahora solo necesito averiguar cómo traer la versión miniatura de la imagen destacada.
