禁止在管理员帖子部分显示特定类别的帖子

时间:2018-08-20 作者:saeid ezzati

出于某些目的,我制作了一个插件,可以自动生成具有特定类别的帖子。现在在管理帖子部分,那个特定类别的帖子太多了,很难找到其他帖子。

为此,我编写了另一个插件,希望在没有使用任何第三方插件的情况下,防止在管理帖子部分显示特定类别id或slug的帖子。我想在管理部分制作一个菜单,以显示该特定类别的帖子。

我的目标类别slug是“eventscat”。

但我不知道怎么做,我必须用什么钩子?

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

您可以使用pre_get_posts 影响前端和管理中任何查询的操作。在您的情况下,您应该确保只影响管理查询,甚至可以使用get_current_screen 进一步缩小范围。下面是一个仅在常规帖子页面上修改查询的示例:

add_action (\'pre_get_posts\', \'wpse311946_restrict_cats\');
function wpse311946_restrict_cats ($query) {
   // retrieve the id of the category to be excluded
   $idObj = get_category_by_slug (\'eventscat\'); 
   $id = $idObj->term_id;
   // find current admin page
   $current_screen = get_current_screen ();
   // conditionally exclude category
   if (is_admin() && $current_screen->id == "edit-post" ) {
     $query->set (\'cat\', -$id);
     }
   }
您可以使用相同的过滤器,稍加修改,以确保在要创建的其他帖子页面上仅显示此类别的帖子(这将有另一个屏幕id)。

结束

相关推荐

Admin cannot publish

当我今天早上登录我的网站时,我注意到我的用户不能发布任何内容。我是管理员,也是网站上唯一的用户。在帖子和页面上,而不是“发布”,我有“提交以供审阅”按钮,如果单击该按钮,页面将为空,并显示“抱歉,您不允许修改此帖子”。我的所有插件都被禁用了,甚至在缓存重置之后,我也有同样的问题。你能帮帮我吗?编辑:谢谢你的回答,我终于解决了所有问题我找到了答案!在网上漫游之后,我发现了这个页面:https://wpindexfixer.tools.managedwphosting.nl/wpindexfixer/下面是我