【问题标题】:Querying Wordpress thumbnails查询 Wordpress 缩略图
【发布时间】:2011-04-06 05:08:23
【问题描述】:

我正在尝试获取我的 wordpress 博客中帖子的缩略图元数据以及它们的类别和其他一些数据。 缩略图数据是序列化的,稍后我会反序列化。

这是我的查询:

    SELECT wpostmeta.meta_value AS url,
    wposts.post_content, wposts.post_title, wposts.post_status, wposts.post_name,
    cat_terms.name AS category_name, cat_terms.term_id AS category_id,
    ttable.meta_value AS thumb_data
    FROM `wp_postmeta` AS wpostmeta,
    `wp_posts` AS wposts
    INNER JOIN wp_term_relationships AS cat_term_relationships ON (wposts.ID = cat_term_relationships.object_id)
    INNER JOIN wp_term_taxonomy AS cat_term_taxonomy ON (cat_term_relationships.term_taxonomy_id = cat_term_taxonomy.term_taxonomy_id AND cat_term_taxonomy.taxonomy = 'category')
    INNER JOIN wp_terms AS cat_terms ON (cat_term_taxonomy.term_id = cat_terms.term_id)
    LEFT JOIN `wp_postmeta` AS ttable ON (wposts.ID = ttable.post_id AND ttable.meta_key = '_wp_attachment_metadata')
    WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'url'
    AND wposts.post_type = 'post'

除附件部分外,一切正常。 'thumb_data' 为 NULL。

你能帮我解决这个问题吗?

【问题讨论】:

    标签: sql wordpress thumbnails


    【解决方案1】:

    这个查询解决了我的问题:

    $sql = "SELECT wposts.ID AS ID, thumbposts.ID AS thumbposts_ID,
            postmeta.meta_value AS url,
            wposts.post_content, wposts.post_title, wposts.post_status, wposts.post_name,
            cat_terms.name AS category_name, cat_terms.term_id AS category_id,
            thumb.meta_value AS thumb_data
    
            FROM `wp_postmeta` AS postmeta,
            `wp_posts` AS thumbposts,
            `wp_postmeta` AS thumb,
            `wp_posts` AS wposts
    
            INNER JOIN wp_term_relationships AS cat_term_relationships ON (wposts.ID = cat_term_relationships.object_id)
            INNER JOIN wp_term_taxonomy AS cat_term_taxonomy ON (cat_term_relationships.term_taxonomy_id = cat_term_taxonomy.term_taxonomy_id AND cat_term_taxonomy.taxonomy = 'category')
            INNER JOIN wp_terms AS cat_terms ON (cat_term_taxonomy.term_id = cat_terms.term_id)
    
            WHERE wposts.ID = postmeta.post_id
            AND postmeta.meta_key = 'url'
    
            AND thumbposts.post_parent = wposts.ID
            AND thumbposts.post_type = 'attachment'
    
            AND thumb.post_id = thumbposts.ID
            AND thumb.meta_key = '_wp_attachment_metadata'
    
            AND wposts.post_type = 'post'";
    
        if($filter == 1){
            $sql .= " AND cat_terms.term_id = '1'";
        }
        if($filter == 2){
            $sql .= " AND cat_terms.term_id = '3'";
        }
    
        $sql .= " GROUP BY wposts.ID
            ORDER BY wposts.post_date ASC";
    

    【讨论】:

      【解决方案2】:

      您能否准确解释您要达到的目标 - 在大量情况下,没有真正需要直接访问数据库。

      例如,您可以使用 get_posts 和 'post_type'=>'attachment' 和 'post_mime_type'=>'image' 来获取图像附件然后输出元数据,并且内置了许多函数来处理调整大小、显示和裁剪缩略图,例如 get_post_thumbnail() 等。

      【讨论】:

        猜你喜欢
        • 2013-01-30
        • 1970-01-01
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 2012-03-07
        • 2017-06-13
        • 2011-01-25
        • 2012-02-23
        相关资源
        最近更新 更多