2014-12-01 41 views
0

我在single.php中有一個表單,它將數據提交到同一頁面上的wp_update_post()。問題是,每當single.php加載時,我的更新函數在The Loop已經加載並且已經從數據庫檢索到該文章之後啓動。WordPress - 從single.php中更改文章的內容,然後從數據庫下載

我必須刷新頁面才能看到我使用wp_update_post()所做的任何更改。

這是我更新帖子:

$queried_object = get_queried_object(); 
$my_post = get_post($queried_object->ID); 

if(isset($_POST['submit']) && isset($_POST['singleedit'])) { 
    $my_post->post_content = $_POST['singleedit']; 
    wp_update_post($my_post); 
} 

即使我把它只是在有關職位從數據庫下載後它推出的頭之後。

在從數據庫下載之前,有沒有辦法在single.php中更改帖子內容?

編輯:對不起,我意識到我不夠清楚。該表單僅用於管理員,它是一個wp_editor,可以從中更新帖子的內容。我已經管理了所有的佈局問題等。我希望管理員能夠修改他們正在查看的帖子的內容。

回答

1

一般而言,您不希望「更新」操作重新呈現表單內容。如果用戶在頁面上按刷新,他們將得到整個「你確定要重新提交表單數據嗎?」彈出。相反,您只想在成功更新後將用戶重定向回單頁面。因此,該職位將被更新。所以在wp_update_post之後,只需撥打wp_redirect(get_the_permalink());

+0

哦,對不起,我還不夠清楚。該表單僅適用於管理員,它是一個wp_editor,可以從中更新發布內容。我已經管理了所有的佈局問題等。我希望管理員能夠修改他們正在查看的帖子的內容。 – 2014-12-01 20:14:03

+0

那麼,即使它只是一個僅限於管理員的表單,也存在對頁面重新渲染的關注。在POST表單提交後執行重定向被認爲是最佳做法。 – BBonifield 2014-12-01 20:20:43

+0

好的,你是對的,我檢查過重定向,它速度很快,沒有人會注意到。謝謝,我選擇你的答案是正確的。順便說一下,你只需要一行代碼即可解決互聯網上最受歡迎的問題之一(基於我的研究)WordPress問題。做得好。謝謝。 – 2014-12-01 20:31:47