是的,您可以使用pre_get_posts hook. 从文档中:
在创建查询变量对象之后但在运行实际查询之前激发。
换句话说,这个钩子允许您在WP查询运行之前更改它,因此您可以根据需要加入任何条件。
以下是如何使用此挂钩的结构add_action():
// Define your callback for the action
function wpse_modify_original_query($query){
// Here you can do whatever you want with the $query
}
// Attach your callback to the pre_get_posts action hook
add_action(\'pre_get_posts\', \'wpse_modify_original_query\');
您还可以将其与其他条件结合使用,以便仅在需要时应用其效果,如仅用于存档或管理页面,使用
is_archive() 或
is_admin().
For example:
function wpse_modify_original_query($query){
if(is_archive() or is_admin()){
// This query is for an archive or admin page, restrict to specific authors
$query->set(\'author__in\', array(2,4,6)); // Your desired authors ids
}
}
add_action(\'pre_get_posts\', \'wpse_modify_original_query\');
但正如你在问题中所提到的,只是;隐藏“;帖子并不是解决垃圾邮件问题的干净方法。如果您提供有关这些作者如何在您的仪表板上发布的更多信息,我们可以帮助您找到更好的解决方案。
例如,一个好的解决方案是在发布帖子之前验证帖子,或者至少验证新用户发布的第一篇帖子。如果是好的,那么你允许他们继续出版。