我想在帖子编辑器中隐藏两个特定用户角色的类别元框中的一些类别

时间:2020-02-03 作者:Naeem Musa

最近,我正在WordPress中定制COLORMag主题。我想让我的网站成为一个多作者的网站,在那里随机的人将注册和写作。但由于我的主题主页按类别显示所有帖子,所以我只想控制在主页上显示哪些类别的帖子。要做到这一点,我必须限制元框中的某些类别,以便只有我可以选择在该类别中显示哪个帖子。我通过Publishpress功能插件创建了两个自定义用户角色。

其中两位是“评论中的作者”和“出版商”。被审查的作者不能直接发布到主页,但出版商可以这样做。现在,我想限制他们在发布内容时从元框中选择一些特定类别。但这些类别将以超级管理员的身份显示在我的编辑器窗格中,所有人都可以看到这些类别的帖子。我希望我能够解释这个问题。这个问题急需解决。如果你能给我的解释和说明自定义代码,那么它将非常感谢,因为我是如此新的编码。提前谢谢。

N、 在Wordpress目录中有一个插件来限制类别。但由于安全原因,该插件已从Wordpress中删除。

1 个回复
SO网友:Naeem Musa

在网上搜索了很多之后,我找到了一个解决方案,所以我回答了我自己的问题。我希望它能帮助别人。您可以传入要隐藏为数组的类别的ID,然后将其粘贴到函数中。php文件。它将在新编辑器中工作。将为管理员显示所有类别。

不要忘记自定义$exclude\\u array=数组(“5”、“6”、“7”、“1”)中的值;

function hide_categories_for_specific_user( $exclusions, $args ){

if (!current_user_can(\'manage_options\') ) {

   // IDs of terms to be excluded
   $exclude_array = array("5","6","7","1"); // CHANGE THIS TO IDs OF YOUR TERMS


   // Generation of exclusion SQL code
   $exterms = wp_parse_id_list( $exclude_array );
   foreach ( $exterms as $exterm ) {
           if ( empty($exclusions) )
                   $exclusions = \' AND ( t.term_id <> \' . intval($exterm) . \' \';
           else
                   $exclusions .= \' AND t.term_id <> \' . intval($exterm) . \' \';
   }

   // Closing bracket
   if ( !empty($exclusions) )
       $exclusions .= \')\';

   // Return our SQL statement
   return $exclusions;

  }
}

 // Finally hook up our filter
 add_filter( \'list_terms_exclusions\', \'hide_categories_for_specific_user\', 10, 2 );