wordpress - regenerate - tamaño de imagenes para woocommerce
¿Dónde se almacena el enlace de la imagen destacada de la publicación en la base de datos de WordPress? (4)
¿Dónde se almacena el enlace de la imagen destacada en la base de datos de WordPress?
Busqué en la tabla
wp_postmeta
pero no puedo encontrar el
post_id
exacto y los
links
.
¿Es esto correcto? ¿Alguien podría explicarme cómo funciona?
Incluso si la respuesta de rnevius parecía correcta, el resultado devolvió algunas imágenes con este tipo de URL: http://www.example.com/?attachment_id=48 que no funcionaba en mi caso.
Probado en Wordpress 4.9.3:
Otra solución es usar
_wp_attached_file
en
_wp_attached_file
lugar:
wp_postmeta
Busque el valor
_thumbnail_id
en
meta_key
meta_id | post_id | meta_key | meta_value
200 | 4 | _thumbnail_id | 48
wp_postmeta
Nuevamente en
wp_postmeta
, busque el valor
_wp_attached_file
en
meta_key
donde
post_id
coincide con el
meta_value
buscar en la consulta anterior
meta_id | post_id | meta_key | meta_value
1020 | 48 | _wp_attached_file | 2018/09/picture.jpg
Consulta :
SELECT wp.ID, wpm2.meta_value
FROM wp_posts wp
INNER JOIN wp_postmeta wpm
ON (wp.ID = wpm.post_id AND wpm.meta_key = ''_thumbnail_id'')
INNER JOIN wp_postmeta wpm2
ON (wpm.meta_value = wpm2.post_id AND wpm2.meta_key = ''_wp_attached_file'')
La ID de la imagen presentada se almacena en
wp_postmeta
con una
meta_key
llamada
_thumbnail_id
.
Ejemplo:
╔═════════╦═════════╦═══════════════╦═══════════╗
║ meta_id ║ post_id ║ meta_key ║ meta_value║
╠═════════╬═════════╬═══════════════╬═══════════╣
║ 200 ║ 4 ║ _thumbnail_id ║ 48 ║
╚═════════╩═════════╩═══════════════╩═══════════╝
El enlace de la miniatura real está contenido en
wp_posts
con un
post_type
de
attachment
.
Ejemplo:
╔════╦════════════╦═════════════════════════════════════════════════════╗
║ ID ║ post_type ║ guid ║
╠════╬════════════╬═════════════════════════════════════════════════════╣
║ 48 ║ attachment ║ http://example.com/wp-content/uploads/yourimage.png ║
╚════╩════════════╩═════════════════════════════════════════════════════╝
Tenía curiosidad, así que aquí va ...
-
La tabla
wp_postmeta
contendrá una entrada para la publicación conmeta_key
de_thumbnail_id
-
el
meta_value
es unpost_id
secundario para la imagen destacada -
usando ese
post_id
, puede obtener más información dewp_posts
ywp_postmeta
Para ponerlo todo junto, así es cómo obtener la fila
wp_posts
secundaria para la imagen destacada de la publicación
XXX
...
SELECT childpost.*
FROM wp_posts childpost
INNER JOIN wp_postmeta parentmeta ON (childpost.ID=parentmeta.meta_value)
WHERE parentmeta.meta_key=''_thumbnail_id''
AND parentmeta.post_id=XXX;
Y aquí están los metadatos para esa misma imagen.
SELECT childmeta.*
FROM wp_postmeta childmeta
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key=''_thumbnail_id''
AND parentmeta.post_id=XXX;
Los metadatos incluirán una
_wp_attached_file
relativa
_wp_attached_file
y un
_wp_attachment_metadata
contiene algunos datos serializados de PHP.
aquí mi sql con imagen de url completa
SELECT concat((select option_value from wp_options where option_name =''siteurl'' limit 1),''/wp-content/uploads/'',childmeta.meta_value)
FROM wp_postmeta childmeta
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key=''_thumbnail_id'' and childmeta.meta_key = ''_wp_attached_file''
AND parentmeta.post_id = POST_ID ;
select option_name from wp_options where option_name =''siteurl''
el resultado será así
http://yourdomain/blog-wp/wp-content/uploads/2015/04/IMG_06062014_155904.png