【发布时间】:2015-04-22 23:57:23
【问题描述】:
特色图片链接存储在 WordPress 数据库中的什么位置?我在wp_postmeta 表中进行了搜索,但找不到确切的post_id 和links。
这是正确的吗?谁能给我解释一下它是如何工作的?
【问题讨论】:
-
他们如何以及在何处链接
post_id和图像?
标签: wordpress
特色图片链接存储在 WordPress 数据库中的什么位置?我在wp_postmeta 表中进行了搜索,但找不到确切的post_id 和links。
这是正确的吗?谁能给我解释一下它是如何工作的?
【问题讨论】:
post_id 和图像?
标签: wordpress
即使rnevius 的答案似乎是正确的,结果还是返回了一些具有这种 URL 的图像: http://www.example.com/?attachment_id=48 在我的情况下不起作用。
在 Wordpress 4.9.3 上测试:
另一种解决方案是改用_wp_attached_file:
wp_postmeta
在meta_key 中搜索值_thumbnail_id
meta_id | post_id | meta_key | meta_value
200 | 4 | _thumbnail_id | 48
wp_postmeta
再次在wp_postmeta 中,在meta_key 中搜索值_wp_attached_file,其中post_id 与上一个查询中的meta_value 匹配
meta_id | post_id | meta_key | meta_value
1020 | 48 | _wp_attached_file | 2018/09/picture.jpg
查询:
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')
【讨论】:
这里是我的带有完整 url 图片的 sql
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'
结果会是这样的
http://yourdomain/blog-wp/wp-content/uploads/2015/04/IMG_06062014_155904.png
【讨论】:
特色图像 ID 存储在 wp_postmeta 中,meta_key 称为 _thumbnail_id。示例:
╔═════════╦═════════╦═══════════════╦═══════════╗
║ meta_id ║ post_id ║ meta_key ║ meta_value║
╠═════════╬═════════╬═══════════════╬═══════════╣
║ 200 ║ 4 ║ _thumbnail_id ║ 48 ║
╚═════════╩═════════╩═══════════════╩═══════════╝
实际的缩略图链接随后包含在wp_posts 中,其中post_type 为attachment。示例:
╔════╦════════════╦═════════════════════════════════════════════════════╗
║ ID ║ post_type ║ guid ║
╠════╬════════════╬═════════════════════════════════════════════════════╣
║ 48 ║ attachment ║ http://example.com/wp-content/uploads/yourimage.png ║
╚════╩════════════╩═════════════════════════════════════════════════════╝
【讨论】:
_wp_attached_file 和值 = 附加文件路径的缩略图帖子(即 /2020/10/... ) 使其使用get_post_thumbnail() 函数出现。可能我在此过程中搞砸了其他事情,但这对我有用。
我很好奇,所以这里......
wp_postmeta 表将包含 meta_key 的 _thumbnail_id 的帖子条目
meta_value 是特色图片的孩子post_id
post_id,您可以从wp_posts 和wp_postmeta 获得更多信息
总而言之,这里是如何为帖子XXX 的特色图片获取子wp_posts 行...
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;
这是同一张图片的元数据
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;
元数据将包括一个_wp_attached_file 相对路径和一个包含一些PHP 序列化数据的_wp_attachment_metadata。
【讨论】: