我正在尝试限制作者的帖子,目前我允许2个帖子不超过2个帖子,目前我有少数用户超过2个帖子所以我如何修复我的代码所以它不允许他们做任何更多帖子。
if ($post_count < 2) {
return TRUE;
} else {
echo 'You have already posted your maximum number of posts.';
return FALSE;
}
}
正如我所说,很少有作者有超过2个帖子所以使用这个代码将允许他们发帖,因为if if声明将被绕过,因为它试图检测值2,因为他们已经过去了。
答案 0 :(得分:0)
您应该使用wp_insert_post_data过滤器。在此过滤器中定义您的条件。 所以它会是这样的:
add_filter('wp_insert_post_data', 'aa_func_20150916080916', 20, 2);
function aa_func_20150916080916($data , $postarr)
{
$warn = "You have already posted your maximum number of posts";
$current_user = get_current_user_id();
$user_post_count = count_user_posts($current_user);
if($user_post_count >2 ) {
return wp_die($warn);
}
return $data;
}
请注意:这是快速回答,您应该为您的目的更改代码。
文档:https://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data