WordPress数据库中存储的特色图片链接在哪里?


69

WordPress数据库中存储的特色图片链接在哪里?我在wp_postmeta表格中搜索,但找不到确切的post_idlinks

这个对吗?谁能告诉我它是如何工作的?


他们如何以及在何处链接post_id图像和图像?
Thamaraiselvam

Answers:


157

该功能的图像ID存储在wp_postmeta一个meta_key_thumbnail_id。例:

╔═════════╦═════════╦═══════════════╦═══════════╗
║ meta_id ║ post_id ║ meta_key      ║ meta_value║
╠═════════╬═════════╬═══════════════╬═══════════╣
║ 200     ║ 4       ║ _thumbnail_id ║ 48        ║
╚═════════╩═════════╩═══════════════╩═══════════╝

实际缩略图的链接,然后包含在wp_postspost_typeattachment。例:

╔════╦════════════╦═════════════════════════════════════════════════════╗
║ IDpost_typeguid                                                ║
╠════╬════════════╬═════════════════════════════════════════════════════╣
║ 48 ║ attachmenthttp://example.com/wp-content/uploads/yourimage.png ║
╚════╩════════════╩═════════════════════════════════════════════════════╝

1
我知道这很旧,但这正是我想要的。感谢您给出正确而正确的答案!
安东尼

1
很有帮助。我使用PHPmyAdmin SQL结构和数据/删除表/完整插入直接从数据库中导出了这些表。运行查找并替换生成的SQL文件中的域名。然后在新的wordpress数据库中运行SQL。这是唯一在迁移过程中正确还原特色图像的东西。
Heres2u '18 -10-31

13

我很好奇,所以这里...

  • wp_postmeta表将举行与后一个条目meta_key_thumbnail_id
  • meta_valuepost_id精选图片的孩子
  • 使用post_id,您可以从wp_posts和获取更多信息wp_postmeta

综上所述,这是如何获取子wp_posts行以显示post的特色图片的方法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;

这是同一张图片的元数据

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相对路径,并_wp_attachment_metadata包含一个包含一些PHP序列化数据的数据。


我可以得到Wordpress压缩图像的SQL是什么,我的意思是其他尺寸:300x300、150x150(每个图像的wordpress尺寸)?
列宁·萨帕塔

11

这里我的SQL与完整的URL图像

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


1
当我要写同一本书时,节省了我的时间。#thx
Marc

它不仅提供了存储值的实际字段和表,还提供了访问值所需的深奥的SQL语句,从而回答了该问题。+1应该问的问题是“这适用于哪个版本的Wordpress?” 因为对于版本4.8(可能还有未知数量的先前版本),上述答案已不再是有效的。事情会改变的。
囚犯

9

即使rnevius答案似乎正确,结果仍会返回一些具有此类URL的图像:http : //www.example.com/? attachment_id=48, 在我的情况下不起作用。

在Wordpress 4.9.3上测试:

另一种解决方案是改为使用_wp_attached_file

wp_postmeta

搜索值_thumbnail_idmeta_key

meta_id   | post_id   | meta_key            | meta_value
200       | 4         | _thumbnail_id       | 48

wp_postmeta

再次在中wp_postmeta_wp_attached_file在与上一个查询中的查找匹配的meta_key位置搜索值post_idmeta_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')
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.