我允许用户从前端发帖。有三种用户。我自己是管理员,一个初级(被赋予作者的角色)和任何来自public的非登录用户。目前,如果前端有任何未登录的用户帖子,我将被指定为具有此代码的作者。当前我的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\'
(my junior的用户id)否则将作者设置为admin。我想问两件事,我是否也需要
global $post
在我的代码之前,我应该使用另一个
wp_update_post 改为过滤。请帮忙。
最后一种情况必须是,当管理员或任何其他人创建帖子时,帖子作者必须设置为管理员(me),但当我的下级创建帖子时,他必须设置为帖子作者。如果我们在后端创建帖子,这将是不必要的,但由于某些原因,我们更喜欢在前端创建帖子。
<小时>UPDATE : SOLVED事实证明,使用wp\\u update\\u post非常简单。虽然,现在它工作得很好。如果你发现什么有趣的事,请告诉我。以下是我在wp\\u insert\\u 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 );
}
}