Intereting Posts
Клиенты Weblog не могут извлекать сообщения: недопустимый шестнадцатеричный символ (0x7) был найден в содержимом элемента документа Гравитационные формы – использование формы для предварительного заполнения формы гравитации add_action в пространстве имен не работает Получите plugin_dir_url () с одного уровня в глубину плагина WP_Query не работает при добавлении параметра url <ul> внутри <ol> в редакторе Возврат вызова Ajax 0 Как изменить порядок расположения мета-ящиков? Добавление настраиваемых столбцов в пользовательские типы сообщений Добавить нового пользователя и добавить мета сразу Есть ли простой способ разделить темы на сети? Обрезаемая фатальная ошибка: объект класса WP_Term не может быть преобразован в строку Эхо-теги с выражением if и отображения php внутри IF? Отображение различных сообщений через wp_list_categories () Пользовательская тема: добавление нежелательных тегов <p> в контент

Показать вкладку Nav Link для пользователей

Пользователи WordPress позволяют применять классы CSS к ссылкам в разделе «Появления» -> «Меню».

Основываясь на этом, я хотел бы знать, есть ли способ скрыть ссылки, имеющие определенный класс CSS. Так сказать, я применяю класс CSS

.members

к одной из моих навигационных ссылок. Уловка, я бы хотел, чтобы эта ссылка отображалась только пользователям, которые вошли в систему.

Я немного застрял, хотя я не знаю, как это сделать. Может что-то вроде:

if(is_user_logged_in()) { } 

Я просто не знаю, как настроить таргетинг на класс CSS.

Solutions Collecting From Web of "Показать вкладку Nav Link для пользователей"

Вы можете использовать body_class для этой цели, например:

 .members { display: none; } body.logged-in .members { display: block; } 

Если вам удобно писать PHP-код, вы можете получить массив каждого элемента в меню, используя wp_get_nav_menu_items () , и используя массив классов объекта, чтобы выяснить, какие классы применяются к элементу. Затем вы будете использовать is_user_logged_in (), чтобы отобразить ссылку.

Что-то вроде:

  foreach ($items as $item){ if ( in_array( 'members' , $item->classes ) ) { if ( is_user_logged_in() ) { echo '<a href="'.$menu_item->url.'">link</a>'; } } else { echo '<a href="'.$menu_item->url.'">link</a>'; } } 

Если вы не хотите взломать и скриптать с некоторым PHP, попробуйте сыграть с плагином разрешений, например http://wordpress.org/plugins/user-permissions/ или http://wordpress.org/plugins/members/ , Я лично не пытался использовать его для установки разрешений в меню, но эти плагины позволят вам управлять разрешениями по роли пользователя почти во всем через графический интерфейс