2016-06-21 14 views
0

嗨,我知道這個問題可能看起來很熟悉,但請閱讀完整的問題。 我想獲得WordPress的帖子標題,特色圖片,使用mysql查詢的內容。 我嘗試了很多查詢,但我收到錯誤。如何使用mysql查詢獲取標題,內容和精選圖像的WordPress的帖子

沒有錯誤,MySQL查詢返回空。我正在使用Wordpress版本4.5.2。

我發現此查詢,但它給了我一個空的結果。

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 
    )LEFT JOIN 
    wp_term_relationships wtr 
    ON 
(
    object_id=p1.id 
    ) 
    WHERE 
    p1.post_status='publish' 
    AND p1.post_type='post' 
    AND 'term_taxonomy_id'='454' 
    ORDER BY p1.post_date DESC 
    LIMIT 0,10 

如何改進此查詢以返回結果?

+0

您應該向我們展示您的數據庫結構,以及檢查您的MySQL是否在運行查詢時返回任何錯誤通知。 – Martin

+0

您使用的是哪個版本的WordPress? – Martin

+0

沒有錯誤,mysql查詢返回空和wordpress版本是4.5.2 –

回答

0

你有SQL的WHERE子句中的錯誤:

AND 'term_taxonomy_id'='454' 

字符串'term_taxonomy_id'永遠不會等於字符串'454'

首先,要檢查,完全從您的查詢中刪除此條件。如果你得到的結果回來,你還在想這個taxonomy_id過濾,然後除去周圍的字段名的單引號:

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 
     ) 
LEFT JOIN wp_term_relationships wtr ON (object_id = p1.id) 
WHERE p1.post_status = 'publish' 
    AND p1.post_type = 'post' 
    AND term_taxonomy_id = '454' 
ORDER BY p1.post_date DESC LIMIT 0,10 

在MySQL中,你可以使用反引號周圍字段名稱,但單引號括住字符串文字使用。如果混合起來,你會遇到麻煩。

如果您仍未收到結果,請考慮刪除p1.post_statusp1.post_type限制,以查看是否得到結果並進行相應調整。

+0

謝謝先生。像一個魅力工作!..幫我多一個忙,我怎麼能通過多個類別ID做到這一點? –

+0

我不確定類別ID是什麼。我上次使用Wordpress已經有好幾年了。然而......如果你想爲多個分類標準做這個,你可以在('454','455','456')中將'和term_taxonomy_id ='454'更改爲'和term_taxonomy_id'適用於任何'category id'(假設它是已經加入的表中的一個表中的字段) – JNevill

相關問題