2011-04-13 74 views
1

我想與SEO標題替換文章標題,如果它存在MySQL查詢與all_in_one SEO文章標題

我想包括下面的查詢$wpdb->wp_postmeta.meta_value WHERE $wpdb->wp_postmeta.meta_key = aioseop_title更換WP文章標題。
我不確定的是使用什麼代碼來查找它是否存在。
對於一些帖子,沒有aioseop_title。

理想情況下,我希望每次列出post_title,並且包括$wpdb->wp_postmeta.metavalue如果每個帖子的meta_key = aioseop_title

這是幹什麼的:在它下面找到建立google新聞站點地圖的帖子ID。
我上面提出的將在wordpress中使用seo標題,而不是默認的帖子標題。

$rows = $wpdb->get_results(
    "SELECT 
    $wpdb->posts.ID 
    , $wpdb->posts.post_date_gmt 
    , $wpdb->posts.post_title 
    FROM $wpdb->posts 
    WHERE $wpdb->posts.post_status='publish' 
    AND (DATEDIFF(CURDATE(), post_date_gmt)<=30) 
    $includeMe 
    ORDER BY $wpdb->posts.post_date_gmt DESC 
    LIMIT 0, 1000" 
); 
+0

我只是不明白你的觀點,你能否更清楚地解釋你想要什麼(沒有這一切例如:「我想根據標題在所有帖​​子中添加X元鍵」 – 2011-04-13 18:56:53

+0

我想用一個seo標題中的所有post_title代替它(這需要加入) – 2011-04-13 20:21:39

+0

如果我是內連接要求所有情況都必須滿足,左連接允許空(空)結果 – mardala 2011-04-18 21:15:57

回答

0

在閱讀評論澄清之後,可能是這樣的?

$rows = $wpdb->get_results(
    "SELECT 
    $wpdb->posts.ID 
    , $wpdb->posts.post_date_gmt 
    , $wpdb->posts.post_title 
    , meta.metavalue 
    FROM $wpdb->posts 
    LEFT JOIN $wpdb->wp_postmeta.metavalue AS meta ON meta.post_id = $wpdb->posts.ID AND meta.meta_key = 'aioseop_title' 
    WHERE $wpdb->posts.post_status='publish' 
    AND (DATEDIFF(CURDATE(), post_date_gmt)<=30) 
    $includeMe 
    ORDER BY $wpdb->posts.post_date_gmt DESC 
    LIMIT 0, 1000" 
); 

後面跟着一個有條件的php來判斷aioseop(可能是$ row ['metavalue'])列是否爲null。我還沒有深入研究wordpress知道確切的列名,但從你提出的這可能是你要找的東西。 (順便說一句,它可能會更容易爲別名'FROM $ wpdb-> posts'部分。