1

我正在开发我的网站,并且需要在发布时即时更改帖子作者 ID。

所有帖子将由管理员编写和发布,但作为不同作者提供的内容,需要将帖子作者 ID 从管理员更改为其他作者(作者 ID 将从自定义字段中获取)

那么如何在发布时即时执行此操作。

作者信息是否必须来自自定义字段?因为您可以直接在 UI 中手动执行此操作。

  • 创建帖子时在显示选项中启用“作者”块

  • 在下拉菜单中更改作者

这是我使用 wpalchemy metabox 脚本的主题 metabox.php 代码,下面的代码在我的 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 值而更改。我希望现在更清楚了。

4

2 回答 2

1

作者信息是否必须来自自定义字段?因为您可以直接在 UI 中手动执行此操作。

  • 创建帖子时在显示选项中启用“作者”块

  • 在下拉菜单中更改作者

这是我使用 wpalchemy metabox 脚本的主题 metabox.php 代码,下面的代码在我的 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 值而更改。我希望现在更清楚了。

于 2012-08-04T20:38:15.303 回答
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 的工作原理。基本上,如果您向它传递一个已经存在的帖子的 ID,它将使用您传递给它的新信息更新该帖子。(本例中的作者 ID)

如果您想从自定义字段中获取内容,您可以使用:

$author = get_post_meta($this->ID, 'author_id', TRUE);

有关自定义字段的更多信息。

于 2012-08-04T21:28:39.790 回答