SQL查询:选择介质的缩略图

时间:2018-02-28 作者:Gawet

我正在为网站中的公文包页面创建自定义图库,如果我简单地使用以下方式上载的媒体URL,效果会很好:

SELECT * FROM wp_posts AS p INNER JOIN wp_postmeta AS m ON p.ID=m.post_id 
WHERE p.post_type=\'attachment\' AND m.meta_key=\'_wp_attached_file\'
问题是,如果我上传了太多的大文件,页面就会变慢。这就是为什么我想使用缩略图,但我不知道如何在数据库中相应地选择它们。它们是在wp-content/uploads文件夹中创建的,但我看不出是哪个meta_key 在数据库中选择。

同样值得注意的是,我的数据库没有"_thumbnail_id"meta_key

有人有答案吗?

1 个回复
SO网友:Dharmishtha Patel

$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\');
一个相关的解决方案,在不提供帖子ID的情况下查询帖子(按帖子日期排序,并使用wp\\udatabase前缀):

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

结束