2013-12-14 37 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); 
    } 
} 
相关问题