我正在开发我的网站,并要求在发布时动态更改帖子作者ID。
所有帖子都将由管理员编写和发布,但作为内容由不同作者提供,需要将作者ID从管理员更改为其他作者(作者ID将来自自定义字段)
那么如何在发布时动态执行此操作。
作者信息是否来自自定义字段?因为您可以手动在UI中直接执行此操作。
启用"作者"创建帖子时显示选项中的阻止
在下拉菜单中更改作者
这是我的主题metabox.php代码我使用wpalchemy元文件脚本,下面的代码是在我的cpt循环php文件
// getting custom field value from image_artist
// this is giving value like artist_login_name / id
$png_gallery_meta->the_field('image_artist');
$artist_info = $png_gallery_meta->get_the_value();
// to separate artist_login_name and id
$string = $artist_info;
$artist = substr($string, 0, stripos($string, "/") );
// getting first name and last name from user id
$author_first_name = get_userdata(basename($string))->first_name;
$author_last_name = get_userdata(basename($string))->last_name;
所以我使用上面的代码从自定义字段下拉选择框中获取用户信息。现在我如何使用上面的值来动态更改id,而管理员发布帖子的帖子作者id应该从上面的id值改变从选择框中获取。我希望现在更清楚了。
答案 0 :(得分:1)
作者信息是否来自自定义字段?因为您可以手动在UI中直接执行此操作。
创建帖子
在下拉菜单中更改作者
这是我的主题metabox.php代码我使用wpalchemy元文件脚本,下面的代码是在我的cpt循环php文件
// getting custom field value from image_artist
// this is giving value like artist_login_name / id
$png_gallery_meta->the_field('image_artist');
$artist_info = $png_gallery_meta->get_the_value();
// to separate artist_login_name and id
$string = $artist_info;
$artist = substr($string, 0, stripos($string, "/") );
// getting first name and last name from user id
$author_first_name = get_userdata(basename($string))->first_name;
$author_last_name = get_userdata(basename($string))->last_name;
所以我使用上面的代码从自定义字段下拉选择框中获取用户信息。现在我如何使用上面的值来动态更改id,而管理员发布帖子的帖子作者id应该从上面的id值改变从选择框中获取。我希望现在更清楚了。
答案 1 :(得分:1)
$post_id = $post->ID; // change this to whathever
$user_id = '4'; // change this too
$the_post = array();
$the_post['ID'] = $post_id;
$the_post['post_author'] = $user_id;
wp_insert_post( $the_post );
上面的代码将使用ID为4的作者更新当前循环播放的帖子(通过$ post-> ID)。
了解wp_insert_post的工作原理here。基本上,如果您传递已存在的帖子的ID,它将使用您传递给它的新信息更新该帖子。 (在这种情况下为作者ID)
如果您想从自定义字段中获取内容,可以使用:
$author = get_post_meta($this->ID, 'author_id', TRUE);
有关custom fields的更多信息。