web-dev-qa-db-ja.com

特定の役割の管理バー検索フィールドを無効にする

特定のロールに属する特定のユーザーがログインしているときに管理バーの検索フィールドを無効にしたいのですが、他のユーザーではなく、ロール「admin」に対して検索フィールドを使用可能にしたいのですが。

この投稿 は管理バーを完全に削除する方法を教えてくれますが、その要素を選択的に削除する方法に関する情報は提供していません。

誰もがこれで経験がありますか?

ありがとう、jml

1
jml

万が一誰かがこれにつまずいた場合は、次のようになります。 "search"や管理バーから削除できるその他の例をいくつか示します。

public function remove_admin_menu_bar_items ($wp_toolbar) {
    $wp_toolbar->remove_node( 'my-sites' );
    $wp_toolbar->remove_node( 'wp-logo' );
    $wp_toolbar->remove_node( 'new-content' );
    $wp_toolbar->remove_node( 'view' );
    $wp_toolbar->remove_node( 'search' );  // remove the search element
    return $wp_toolbar;
}
add_filter( 'admin_bar_menu', 'remove_admin_menu_bar_items' );

コーデックス参照: https://codex.wordpress.org/Function_Reference/remove_node

そして、その質問に完全に答えるために、特定のロール/機能をテストしたい場合は、まず現在のユーザーに問い合わせることに基づいて、このコードを(条件付きロジックを使用して)実行することができます。

$current_user = wp_get_current_user();

$ current_userはオブジェクトになり、プロパティの1つはユーザーが持つロールです。

コーデックス参照: https://codex.wordpress.org/Function_Reference/wp_get_current_user

3
C C