2014-06-26 98 views
0

我看了this線程並試圖在那裏實現給定的代碼示例;更新所有文章 - wordpress

//code snippet to mass update all posts 
add_action('init','mass_update_posts'); 

function mass_update_posts(){ 

    $all_posts = get_posts('numberposts='); 

    $my_posts = get_posts(array('post_type' => 'post', 'numberposts' => $all_posts)); 

    foreach ($my_posts as $my_post): 

     wp_update_post($my_post); 

    endforeach; 
} 

我將代碼放在我的footer.php,但它似乎並沒有做什麼?我錯過了什麼?最初我用過;

$my_posts = get_posts(array('post_type' => 'post', 'numberposts' => -1)); 

但是,這並沒有幫助...

回答

1

讓我看看,如果我理解你正在嘗試使用此代碼做...

首先每次有人加載頁面footer.php會觸發,所以你想用帖子本身的循環大量更新你的所有帖子?

在使用此代碼時,您嘗試執行的操作有大約100萬個錯誤。

  1. 切勿在腳本文件中添加動作,它們屬於主題的function.php文件。
  2. 你$ all_posts變量可能是空的,因爲你發送函數期待的參數數組的字符串(please read the get_post() function documentation
  3. $ all_posts不是整數,你正在使用它的下一行(get_post()函數返回WP_Post對象的列表。
  4. 你的循環將通過您的所有帖子,並與同一職位更新它們,變着法子和有效地完成什麼。

所以我想真正的問題是,究竟是你想完成?

+0

我e在mysql數據庫中手動添加數據,只在每個頁面上顯示,如果我編輯頁面並按'更新'。因此空的更新。我意識到把它放在頁腳中是很愚蠢的,但它只是讓我可以快速運行代碼,更新帖子,然後刪除它。我同意我不應該這麼懶惰,並且要安全地開火,但我仍然是WP新手.. – myol

+0

這是一個很糟糕的問題,但無論如何感謝 – myol