wordpress - 在php中手动设置帖子的作者

时间:2011-04-22 19:43:25

标签: php wordpress

我正在使用wordpress主题,允许用户创建帖子(他们不需要登录)。问题是,当显示帖子时,<?php the_author(); ?>始终显示为“admin”。创建后的表单有一个我可以在functions.php中获得的名称字段,但是如何手动将帖子的作者更改为在表单字段中输入的名称?

2 个答案:

答案 0 :(得分:3)

如果没有看到背景,我只能向正确的方向迈出一步。在主题中的插件或functions.php中,您可以调用wp_insert_post_data过滤器来更改将作为帖子插入的数据。例如,如果您希望将每个帖子归因于ID为5的作者,您可以执行以下操作:

function my_change_author( $data , $postarr )
{
  $data['post_author'] = 5;
  return $data;
}

add_filter('wp_insert_post_data' , 'my_change_author' , '99', 2);

我之前做过类似的事情,我有前端表单,我将其作为帖子捕获并自动分配给我称之为Web Monkey的预定义作者或类似的东西;)查看此页面了解更多信息:{{3 }}。这个过滤器非常强大,因为您可以在数据到达数据库之前改变您的数据。

答案 1 :(得分:0)

您检查了the_author_meta()包含的内容吗? WP必须在每个帖子上附加一个用户ID,因此很可能是将用户1分配给这些帖子,无论他们输入的是什么内容。如果没有看到自定义功能或知道您要测试的主题,那么排除故障将非常困难。