我想知道是否有一种方法可以按类别限制此代码。换句话说,如果用户A已经在A类中发布了10篇帖子,那么他可以将新帖子作为草稿保留在A类中,或者在B类中发布另外10篇。
*
* @param array $data An array of slashed, sanitized, and processed post data.
* @param array $postarr An array of sanitized (and slashed) but otherwise unmodified post data.
* @see https://developer.wordpress.org/reference/functions/wp_insert_post/#parameters
* @return {[type]} [description]
*/
function kia_limit_posts( $data, $postarr ) {
if ( isset( $data[\'post_type\'] ) && \'post\' === $data[\'post_type\'] ) {
$posts_per_month = 10; // Could be set as an updatable option
$user_id = get_current_user_id();
// Number of posts in current month by this user
$author_posts = new WP_Query( array(
\'post_type\' => \'any\',
\'post_status\' => \'publish\',
\'author\' => $user_id,
\'fields\' => \'ids\',
\'monthnum\' => date( \'m\' ), // Whatever the current month is
) );
$author_post_count = $author_posts = $author_posts->post_count + 1; // Add current post
if( $author_post_count > $posts_per_month ) {
$data[\'post_status\'] = \'draft\';
}
}
return $data;
}
add_filter( \'wp_insert_post_data\', \'kia_limit_posts\', 10, 2 );
提前谢谢你。