1

我写了这个查询:

$album_id = get_the_id();
$photos = $wpdb->get_results(
    "select * from wp_postmeta where post_id = '"
    . $album_id
    . "' AND meta_key = 'gallery_ph' order by meta_id desc"
);

现在,我想获取这些图像的所有带有标题、名称和描述的缩略图。

我在数据库中发现:

meta_id | post_id | meta_key   | meta_value
577     | 346     | gallery_ph | http://url to the image

和缩略图

meta_id | post_id | meta_key                 | meta_value
569     | 348     | _wp_attachment_image_alt | Jury Datiop

这两个数据是如何连接的?我知道陪审团 Datiop 有 url http://xxx,因为我可以签入 wp-admin。但是如何编写选择查询?如何连接图像并获取标题、名称、描述?

4

1 回答 1

1

您不需要直接查询数据库。

WordPress 有很多自定义函数供您检索所需的数据。

检查:

WordPress Codex:函数参考

特别:


将您的数据库查询转换为 WordPress 函数:

代码未测试,使用 Debug 检查每个操作的结果

$album_id = get_the_id();

$photos = get_children( array(
    'post_parent'    => $album_id, 
    'post_type'      => 'attachment', 
    'meta_key'       => 'gallery_ph', 
    'post_mime_type' => 'image', 
    'order'          => 'DESC', 
    'orderby'        => 'meta_id') 
);

// DEBUG
// echo '<pre>' . print_r( $meta, true ) . '</pre>';

if( $photos )
{
    foreach( $photos as $img )
    {
        // DEBUG
        // echo '<pre>' . print_r( $img, true ) . '</pre>';

        $meta = wp_get_attachment_metadata( $img->ID );
        
        // DEBUG
        // echo '<pre>' . print_r( $meta, true ) . '</pre>';
    }
}   
于 2012-11-26T19:12:15.863 回答