此解决方案使用publish post hook. 这里的情况是,发布帖子时,它会运行自定义post_published_limit
我们在下面创建的函数。
$max\\u posts在这里是静态设置的,您可以将其扩展以从其他地方获取值,但这超出了问题的范围。然而,有plenty 属于literature 描述如何做到这一点。
然后,该函数获取当前试图发布的作者的帖子数。
如果$计数超过$max\\u posts,函数将将其保存为草稿,而不是发布。
function post_published_limit( $ID, $post ) {
$max_posts = 5; // change this or set it as an option that you can retrieve.
$author = $post->post_author; // Post author ID.
$count = count_user_posts( $author, \'post\'); // get author post count
if ( $count > $max_posts ) {
// count too high, let\'s set it to draft.
$post->post_status = \'draft\';
wp_update_post( $post);
}
}
add_action( \'publish_post\', \'post_published_limit\', 10, 2 );