特定のカテゴリを非表示にする必要があり、それがコントリビュータとしてログインしているユーザの子供であるという状況があります。このカテゴリを見せたくないので、新しい投稿の追加画面のカテゴリメタボックスに子供がいます。
他の誰かがそれを知っているかどうか疑問に思う、あるいはこれを実行するために使用できる関数があればさらに良いのかと思って、これを行うためのプラグインを見つけることができません。
こんにちは @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'
。
あなたがプラグインを見つけたので、あなたはこれを必要としないかもしれませんが、多分それは他の誰かを助けるでしょう。
あなたがコントリビュータからカテゴリを隠したいが、そのカテゴリを見ることができるのは管理者だけなので、 'see_special_cats'
を私がテストした'manage_options'
に変更すればうまくいきます。ありがとうございます。 :)