it-swarm.com.de

Holen Sie sich Featured Image über direkte SQL-Abfrage

Ich weiß, dass Sie die WordPress-Methoden verwenden können, um ein ausgewähltes Bild zu erhalten. Bei diesem speziellen Projekt muss das ausgewählte Bild jedoch über eine MySQL-Abfrage abgerufen werden. Kann mich jemand in die richtige Richtung weisen. Vielen Dank.

Dies ist, was ich bisher habe, aber meine Abfrage ist nicht der Trick. Ich habe die $ post-> id als Variable namens $ da_id gespeichert

            $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

Eine verwandte Lösung zum Abfragen von Posts OHNE Angabe einer Post-ID (sortiert nach Post-Datum und mit dem Datenbank-Präfix wp_):

    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