web-dev-qa-db-ja.com

新しい投稿の編集/追加画面で、投稿者からカテゴリを隠すにはどうすればよいですか?

特定のカテゴリを非表示にする必要があり、それがコントリビュータとしてログインしているユーザの子供であるという状況があります。このカテゴリを見せたくないので、新しい投稿の追加画面のカテゴリメタボックスに子供がいます。

他の誰かがそれを知っているかどうか疑問に思う、あるいはこれを実行するために使用できる関数があればさらに良いのかと思って、これを行うためのプラグインを見つけることができません。

5
davemac

こんにちは @davemac:

さて、私はあなたがあなた自身の質問に答えるのを見る前に私はこれを書きました。

add_filter('list_terms_exclusions', 'yoursite_list_terms_exclusions', 10, 2);
function yoursite_list_terms_exclusions( $exclusions, $args ) {
  global $pagenow;
  if (in_array($pagenow,array('post.php','post-new.php')) && 
     !current_user_can('see_special_cats')) {
    $exclusions = " {$exclusions} AND t.slug NOT IN ('slug-one','slug-two')";
  }
  return $exclusions;
}

このコードは'see_special_cats'と呼ばれる capabilities を作成するために Members plugin のようなプラグインを使用していて、もちろんそれ以外のカテゴリにアクセスしたいすべてのロールに割り当てていると仮定しています。 'Contributors'

あなたがプラグインを見つけたので、あなたはこれを必要としないかもしれませんが、多分それは他の誰かを助けるでしょう。

7
MikeSchinkel

あなたがコントリビュータからカテゴリを隠したいが、そのカテゴリを見ることができるのは管理者だけなので、 'see_special_cats'を私がテストした'manage_options'に変更すればうまくいきます。ありがとうございます。 :)

0
Nandish Sandhu