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"
);

ここで、この画像のタイトル、名前、説明を含むすべてのサムネイルを取得したいと思います。

私はDBで見つけました:

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

この2つのデータはどのように接続されていますか?http://xxxwp-adminでチェックインできるので、JuryDatiopにURLがあることを知っています。しかし、selectクエリを作成するにはどうすればよいですか?画像を接続してタイトル、名前、説明を取得するにはどうすればよいですか?

4

1 に答える 1

1

データベースに直接クエリを実行する必要はありません。

WordPressには、必要なデータを取得するためのカスタム関数がたくさんあります。

以下を確認してください。

WordPress Codex:関数リファレンス

特別に:


データベースクエリのWordPress関数への変換:

コードがテストされていない場合は、デバッグを使用して各操作の結果を検査します

$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 に答える