自定义帖子类型,限制为一个

时间:2012-03-08 作者:redconservatory

我正在为一些页面使用自定义帖子类型,其中我有一个非常自定义的模板。。。但我只需要每篇文章中的一篇(可能不是最好的方式……但它是构建的,所以我不想改变它)。

是否有方法删除left side admin menu 只是为了让用户不会一直制作超过一个版本的帖子?

我同意在实际页面中添加新内容,因为这似乎有点难找到。

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

您可以删除“添加新”子菜单页,如下所示:

add_action( \'admin_menu\', \'myprefix_adjust_the_wp_menu\', 999 );
function myprefix_adjust_the_wp_menu() {
  //Get user id
  $current_user = wp_get_current_user();
  $user_id = $current_user->ID;

  //Get number of posts authored by user
  $args = array(\'post_type\' =>\'myposttype\',\'author\'=>$user_id,\'fields\'>\'ids\');
  $count = count(get_posts($args));

  //Conditionally remove link:
  if($count>1)
       $page = remove_submenu_page( \'edit.php?post_type=myposttype\', \'post-new.php?post_type=myposttype\' );
}
如果用户已经创建了帖子,可以使用类似的逻辑有条件地从“添加新”页面重定向用户。

此方法还支持按帖子状态进行查询(即他们最多只能有一篇已发布的帖子)。

当然,以上只是删除了“添加新内容”页面的链接,实际上并没有阻止他们创建帖子。根据您的目标,当他们有多篇文章时,您可以删除“发布文章”功能(他们仍然会看到“添加新链接”,可以创建草稿,但无法发布)。如果你这样做了,你需要在他们“取消发布”帖子时重新添加该功能。

结束

相关推荐