web-dev-qa-db-ja.com

管理者専用メニュー/ページ

管理者だけがログインしている場合、メニュー項目を表示することは可能ですか?)

他のユーザーの場合、メニュー項目は表示されません。

例:トグルなどの作り方を示すために例証されたショートコードまたは他の機能を持っているが管理者だけがそれらを見ることができるようにしたい少数のページがあるならば。これらのページには通常、事前に作成されたテーマが付属しており、サイト内でページを作成する方法を管理者に示しています。

メニュー項目を非表示にすることで、一連のページをユーザーから「隠す」ことができますが、管理者はそれらをサイトから完全に削除しなくてもページを構築できることを確認できます。

:Pは意味をなさない?

1
idaryl

はい、可能です。

フィルタ関数を追加するためにwp_nav_menu_objectsまたはwp_nav_menu_itemsフックを使用することができます。

function my_hide_menu_items($objects) {
    if ( is_admin() ) return $objects;

    foreach ( $objects as $k=>$object ) {
        if ( YOUR CONDITION ) {  // if $object shouldn't be displayed
            unset($objects[$k]);
        }
    }
    return $objects;
}
add_filter('wp_nav_menu_objects', 'my_hide_menu_items', 10, 2);

このプラグインを使うこともできます。 http://wordpress.org/plugins/menu-items-visibility-control/ (私はそれをテストしていませんだから、本当にうまくいくかどうかはわかりません)。

2