如何按类别限制帖子

时间:2021-02-23 作者:ACE

我想知道是否有一种方法可以按类别限制此代码。换句话说,如果用户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 );
提前谢谢你。

1 个回复
SO网友:Mehmet Cemil

布努库兰

$author\\u posts=new WP\\u Query(数组(\'cat\'=>;\'1,3\',\'post\\u type\'=>;\'any\',\'post\\u status\'=>;\'publish\',\'author\'=>;$user\\u id,\'fields\'=>;\'id\',\'monthnum\'=>;date(\'m\'),//无论当前月份是什么));