有没有可能将所有新的和现有的WordPress帖子锁定到一个特定的作者?

时间:2020-04-20 作者:TASan

我有一个案例,将有多个用户撰写、编辑和发布帖子。所有这些帖子都应该有与作者相同的用户,如果你愿意的话,应该是一个包罗万象的用户。

无论哪个用户登录,是否可以通过编程将每个新帖子的作者设置为此用户?我想我将能够弄清楚如何取消在帖子上更改作者的能力,但我有点困在这个问题上。

如果有人能给我指出正确的方向,我将非常感激!

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

这未经测试,但您可以使用wp_insert_post_data 过滤器,用于在插入或更新帖子时将帖子作者更改为特定值:

add_filter(
    \'wp_insert_post_data\',
    function( $data ) {
        if ( \'post\' === $data[\'post_type\'] ) {
            $data[\'post_author\'] = 2; // Replace with desired author\'s user ID.
        }

        return $data;
    }
);
请注意,如果帖子是由没有edit_others_posts 能力,例如作者和贡献者,那么他们将体验到异常行为,因为一旦帖子被保存,他们将无权对其进行任何操作。例如,当按Publish后重新加载帖子页面时,他们可能会看到错误。

相关推荐

当使用只接受一个参数的GET_PREVICE_POSTS_LINK()时,为什么要指定多个参数?

我在看一些插件代码,看起来是这样的:get_previous_posts_link(__(\'<span>&larr;</span> Newer\', \'gc-sermons\'), $total_pages当我看到WP function reference for get_previous_post_link 我发现它只定义了一个这样的参数:get_previous_posts_link( string $label = null )通过上述参数传递的第一个参数有意义: