web-dev-qa-db-fra.com

Obtenir l'image sélectionnée via une requête SQL directe

Je sais que vous pouvez utiliser les méthodes wordpress pour obtenir une image sélectionnée, mais avec ce projet particulier, je dois obtenir cette image via une requête mysql. Est-ce que quelqu'un peut-il me montrer la bonne direction. Je vous remercie.

C’est ce que j’ai fait jusqu’à présent, mais ma requête ne fait pas le tour. J'ai le $ post-> id stocké en tant que variable appelée $ da_id

            $Featured_image = $wpdb->get_results("
            SELECT *
            FROM net_5_postmeta  
            INNER JOIN net_5_posts ON net_5_postmeta.post_id=net_5_posts.ID 
            WHERE post_parent = $da_id
            AND meta_key = '_wp_attached_file' 
            ORDER BY post_date 
            DESC LIMIT 15",'ARRAY_A');
5
uknowit2
$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');
4
Eugene Manuilov

Une solution connexe, permettant de rechercher des publications SANS fournir d’ID de publication (classées par date de publication et en utilisant le préfixe wp_ database):

    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
9
Sam Ward