通过SQL检索带有特色图像的wordpress帖子

Joh*_*ith 7 php mysql sql wordpress

我在Wordpress外部的PHP脚本中使用此查询来检索具有其特色图像的条目

SELECT  ( SELECT guid FROM wp_posts WHERE id = m.meta_value ) AS url 
FROM wp_posts p, wp_postmeta m
WHERE p.post_type =  'post'
AND p.post_status =  'publish'
AND p.id = m.post_id
AND m.meta_key =  '_thumbnail_id'
Run Code Online (Sandbox Code Playgroud)

......它工作正常.

但这样我就可以获得全尺寸图片网址.我需要检索这些图像的"中"或"缩略图"大小.

¿任何方法来实现这一目标?

M K*_*aid 1

您可以尝试此查询缩略图大小,对于中等图像,如果您知道尺寸,我不确定正确的大小,然后按照我在下面使用 SUBSTRING_INDEX 获取文件扩展名的方式创建自定义别名,然后我将 CONCAT函数与post_name列和尺寸+扩展名,类似地,您可以对中等大小执行此操作,由于所有上传都到上传文件夹,您可以分析生成的拇指名称,因此original attachment name + -150x150 or other dimensions根据此逻辑,您的拇指获得带有尺寸的名称,帖子的附件是存储在 post_meta 中,带有帖子 id 并具有键名称_wp_attachment_metadata,它存储有关不同大小的文件的所有信息,但以序列化形式,因此在 mysql 查询中您无法反序列化数据

SELECT    
CONCAT(p.`post_name` ,'-150x150.',
SUBSTRING_INDEX(( SELECT `guid` FROM wp_posts WHERE id = m.meta_value ), '.', -1) )    
 AS `thumbnail`,
 (SELECT guid FROM wp_posts WHERE id = m.meta_value ) AS `full`
FROM wp_posts p, wp_postmeta m
WHERE p.post_type =  'post'
AND p.post_status =  'publish'
AND p.id = m.post_id
AND m.meta_key =  '_thumbnail_id'
Run Code Online (Sandbox Code Playgroud)

此查询适用于我获取大小为 150*150 的缩略图希望它也适用于您