2013-12-14 38 views
0

我使用WordPress的CMS,我允許用戶從前端發佈。有三種用戶。我自己作爲管理員,初級(作爲作者的角色)以及任何來自公衆的未登錄用戶。目前,如果來自前端的任何未登錄用戶帖子,我被分配爲具有此代碼的作者。目前我wp_insert_post陣列看起來是這樣的:根據條件設置發佈作者通過前端提交

'post_title' => $final_title, 
'post_content' => $about_stuff, 
'post_status' => 'draft', 
'post_author' => '20', 
'post_type' => 'post', 
etc.... 

,其中我的作者ID爲 '20'。所有這些工作正常。現在,我想實現的是當我的小輩登錄並在前端創建帖子時,我希望他成爲帖子作者,而不是我(按照當前設置)。我明白,post_author將需要成爲一個變量示例$content_creator。下面給出的是我到目前爲止編寫的代碼,但我很困惑如何把它放在一起,以實現我所需要的。具體來說,我很困惑,我如何讓變量$ content_creator與代碼的其餘部分一起工作。

if (is_user_logged_in()) { 
    $current_user = wp_get_current_user(); 
    if (19 == $current_user->ID) { 
    'post_author' => '19'; 
    } else { 
    'post_author' => '20', 
    } 
} 

的代碼是不言自明的基本和它說檢查是否已登錄的用戶,如果是檢查用戶ID。如果用戶ID等於19設置'post_author' => '19'(我的初級用戶ID),否則將作者設置爲管理員。我想問的兩件事,我是否還需要在我的代碼之前添加全局$ post,並且我應該使用另一個篩選器wp_update_post。請幫忙。

最終方案必須是,當管理員或其他人創建帖子的作者之一後必須設置爲管理員(我),但是當我初中創建後,他必須被設置爲與作家後。如果我們在後端創建帖子,這將是不必要的,但由於某種原因我們更願意在前端創建帖子。

回答

0

原來這很簡單,wp_update_post。雖然,現在它工作正常。如果您發現有趣的事,請告訴我。這是我在wp_insert_post之後使用的代碼,並未對數組進行任何更改。

if (is_user_logged_in()) { 
    $current_user = wp_get_current_user(); 
    if (19 == $current_user->ID) { 

    $update_creator = array(
       'ID'   => $pid, //created post ID 
       'post_author' => '19' 
      ); 

    wp_update_post($update_creator); 
    } 
} 
相關問題