Скрыть div для подписчиков (роль пользователя) на одной странице (is_page)

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

То, что я хочу выполнить, заключается в том, чтобы скрыть div, позволяющий пользователям buddypress (subscrivers) добавлять новые темы в групповой форум. Но я не хочу, чтобы это было скрыто от всех форумов только 1 из них. Поэтому мне нужно 2 штуки 1, которые определяют, является ли кто-то подписчиком или администратором. поэтому его единственное скрытое для абонента. и 2, что он скрывает его только с 1 страницы.

Пример потенциального кода просто должен соответствовать ему (весь код будет идти в функции.php, если нет другого способа)

<?php /* If this is the frontpage */ if ( is_home() || is_page() ) { ?> have info link or whatever in here <?php } ?> 

Thats для главной страницы, но аналогичным образом вы можете получить страницу по ID

Для роли я видел это

 is_admin() 

Я бы предположил, что есть

 is_subscriber() 

и оттуда вы можете сделать if, если в php что-то вроде if is_subscriber () и is_page (42) вызвать .js-файл, а оттуда добавить класс, который скрывает div, который я хочу скрыть jquery

То, насколько я понял, что знаю и оглядываюсь. Я был бы очень признателен за любую помощь.

Solutions Collecting From Web of "Скрыть div для подписчиков (роль пользователя) на одной странице (is_page)"

Просто скрывать div небезопасно – они могут легко отобразить его, отредактировав исходный код или выполнив некоторый Javascript в строке URL браузера. Я считаю, что это может быть то, что вы ищете:

 <?php if (current_user_can('subscriber')){ ?> [html here] <?php } ?> 

Источник: использование WordPress для отображения содержимого в зависимости от уровня пользователя

Если вам известен идентификатор страницы, на которой вы хотите скрыть кнопку, вы можете использовать is_page() в цикле. Вне цикла используйте следующее:

 global $post; $post_id = $post->ID; 

Хотя ответ @ JamesF должен работать, использование ролей считается менее стабильным, чем тестирование против определенных возможностей. Вы можете найти таблицу, сравнивающую роли и возможности в Codex. Доступны только те возможности, которые read подписчикам, поэтому вы можете протестировать их.

Ваш последний код будет выглядеть следующим образом:

 global $post; $post_id = $post->ID; if( $post_id = 42 && current_user_can( 'read' ) { // do stuff } 

Заключительный шаг – вот где это сделать. Если вы программно не добавляете кнопку через functions.php, вы будете вынуждены обернуть кнопку (aka « // do stuff ») в указанном выше коде в существующем файле темы. Это потребует отслеживания кнопки в вашей теме или, возможно, нахождения там, где это делается с помощью функции PHP в BuddyPress.