2014-07-07 54 views
0

我試圖在Wordpress上一次更新我的所有帖子,而不是痛苦地在每個頁面上進行更新。
我用wp_update_post製作了一個小插件,但它沒有識別並更新Magic Fields的後續內容。然後我嘗試從Magic Fields的RCCWP_POST中包含SaveCustomFields,但它需要$ _POST信息才能工作。 我接受任何建議,我嘗試了幾個SQL查詢來完成這個沒有成功。WordPress的自動更新帖子與魔術字段

它看起來就像是:

function activate() 
{ 
    $my_posts = get_posts(array('post_type' => 'post', 'numberposts' => -1)); 
    foreach ($my_posts as $my_post) 
    { 
     wp_update_post($my_post); 
     RCCWP_Post::SaveCustomFields($my_post->ID); 
    } 
} 
+0

numberposts設置爲-1,我敢肯定,必須是一個正數。 – Shawn

+0

其實-1可以讓你得到每一個職位,而不是設置一個非常高的數字來捕捉他們 - 參考http://stackoverflow.com/questions/12010497/get-posts-not-returning-all-posts – lolvstein

+0

有道理。現在你究竟在修改帖子本身?在您的代碼中,您正在獲取帖子並重新保存相同的信息? 「在調用wp_update_post()之前,有必要創建一個數組來傳遞必要的元素。」看起來你應該發送一個數組與任何你試圖更新。 $ my_post = array( 'ID'=> 37, 'post_content'=>'這是更新後的內容') – Shawn

回答

0

我手動更新數據庫所需的字段:

INSERT INTO wp_postmeta(POST_ID,meta_key,meta_value) SELECT POST_ID, 「new_criteria」,meta_value FROM wp_postmeta WHERE meta_key =「old_criteria」AND meta_value!=「」;

相關問題