2013-05-07 212 views
0

如果我需要管理WordPress下的自定義字段,但不是管理區域。換句話說,我需要用戶從前端修改後期自定義字段的內容。有什麼辦法呢?從前端修改自定義字段

作爲實例,請想象Stackoverflow.com作爲一個WordPress站點。在這個網站下,upvotes/downvotes和accept狀態的數量是我的2個後期自定義字段。我如何讓前端用戶在WP數據庫中修改它們的值?

請如果你有另一個更好的方法來創建投票系統和接受系統,使用wordpress,將不勝感激。但是,如果我的方法(使用後自定義字段)是okey,請引導我從Web或代碼中找到文檔以實現我的目標。

謝謝你的平常幫助。

+0

答案有幫助嗎?讓我知道如果還有其他事情需要澄清。 – acsmith 2013-05-07 16:16:56

+0

@acsmith我非常感謝您對此事的反饋。當然你的答案對我有幫助,另外它讓我瞭解了許多新的概念。我現在正在閱讀您提供的大量信息(來自codex和tutplus),同時我正在試圖找到一個用於管理使用BuddyPress的用戶的解決方案。那麼,有些工作需要完成,當整個解決方案將實施時,我會在這裏接受。我已經+1了,我會在這裏發表更多的問題作爲評論,當然。非常感謝。 – 2013-05-07 17:08:39

回答

1

我建議考慮幾件事情:

  1. 每個崗位應該顯示的向上票和向下票
  2. 每個用戶應該只能夠向上或向下票一次的總和(也就是說,一個用戶可以不選同一職位達一百倍)

你以爲你想爲你的主題記錄到改變後的元數據時,允許用戶的功能。 但是,事實並非如此 - 您需要做的是允許用戶編輯自己的元數據元素(請參閱add_user_meta),該元素基本上只是一個散列。元數據可以像array("post-666-vote" => -1, "post-777-vote" => 1)爲崗位666的downvote並給予好評後的777

所以,裝載每個崗位的時候,你的票理貨,渲染會是這個樣子:

vote = get_post_meta($user_id, "post-" . $post_id . "-vote", true); 
if(vote == -1) { 
    // Render down-arrow voting 
} elsif(vote == 1) { 
    // Render up-arrow voting 
} else { 
    // Render normal arrows 
} 

每個箭頭可能不得不通過AJAX請求更新帖子的元數據。這是一個很長的教程(但它不是超級複雜的!我保證!),大約3/4下來講述如何使用AJAX請求來修改某些用戶的元數據。 http://wp.tutsplus.com/tutorials/plugins/a-primer-on-ajax-in-the-wordpress-frontend-actually-doing-it/

唯一真正的主要變化是由WP AJAX請求調用的PHP函數也需要一個回調函數來更新帖子的元數據,並更改帖子本身的投票數。這樣,當頁面重新加載時,它將顯示正確的投票數。

+0

我第一次不理解你的答案,經過研究和學習,我發現它非常有用。我在另一次問這個問題後在其他地方找到了答案。我花了很多時間去了解他們,然後當我回到這裏時,我發現當我收集所有答案時,結果就是您的答案,即第一個答案。再次感謝 – 2013-05-23 16:31:49

+1

嘿,謝謝。很高興得到這個消息,很高興它幫助! – acsmith 2013-05-24 16:35:17