您可以删除“添加新”子菜单页,如下所示:
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\' );
}
如果用户已经创建了帖子,可以使用类似的逻辑有条件地从“添加新”页面重定向用户。
此方法还支持按帖子状态进行查询(即他们最多只能有一篇已发布的帖子)。
当然,以上只是删除了“添加新内容”页面的链接,实际上并没有阻止他们创建帖子。根据您的目标,当他们有多篇文章时,您可以删除“发布文章”功能(他们仍然会看到“添加新链接”,可以创建草稿,但无法发布)。如果你这样做了,你需要在他们“取消发布”帖子时重新添加该功能。