我使用wordpress cms,我允许用户从前端发帖。有三种用户。我自己作为管理员,一个大三学生(作为一个作者的角色)和任何来自公众的非登录用户。目前,如果来自前端的任何未登录用户帖子,我将被指定为具有此代码的作者。目前我的wp_insert_post
数组看起来像这样:
'post_title' => $final_title,
'post_content' => $about_stuff,
'post_status' => 'draft',
'post_author' => '20',
'post_type' => 'post',
etc....
其中我的作者身份是'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 set 'post_author' => '19'
(我的初级用户ID),则将作者设置为admin。我想问两件事,在我的代码之前我还需要全局$ post,我应该使用另一个过滤器wp_update_post。请帮忙。
最终场景必须是,当管理员或其他任何人创建帖子时,后期作者必须设置为admin(我),但是当我的初级创建帖子时,他必须被设置为后期作者。如果我们在后端创建帖子,但由于某些原因我们更喜欢在前端创建帖子,那么这是不必要的。
答案 0 :(得分: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 );
}
}