web-dev-qa-db-fra.com

Admin seulement menu/page

Est-il possible d'afficher un élément de menu si seul l'administrateur est connecté)

Pour tout autre utilisateur, l'élément de menu n'apparaît pas.

Par exemple, si quelques pages contiennent des codes abrégés ou d’autres fonctionnalités, expliquez comment construire des bascules, etc., mais souhaitez uniquement que l’administrateur puisse les voir. Ces pages contiennent généralement des thèmes prédéfinis et montrent à l'administrateur comment créer des pages sur le site.

En masquant les éléments de menu, une série de pages peut être "masquée" par un utilisateur, mais permettre à l'administrateur de les voir pour pouvoir créer des pages, sans avoir à les supprimer entièrement du site.

: P sens?

1
idaryl

Oui c'est possible.

Vous pouvez utiliser les hooks wp_nav_menu_objects ou wp_nav_menu_items pour ajouter votre fonction de filtrage.

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);

Vous pouvez également utiliser ce plugin: http://wordpress.org/plugins/menu-items-visibility-control/ (je ne l'ai pas testé donc je ne sais pas si ça marche vraiment).

2
Krzysiek Dróżdż