Уведомления Frontend Buddypress — показывать только текущему пользователю

Я добавил пользовательское выдвижное окно для отображения уведомлений пользователя Buddypress на любой странице.

https://imgur.com/ellepqp

По сути, я повторяю часть шаблона из плагина Buddypress Youzify (ранее известного как Youzer). Youzify — это просто расширение для редизайна Buddypress, поэтому я считаю, что эта проблема не обязательно связана с этим, а скорее с родным Buddypress.

Я могу получать уведомления для текущего пользователя, когда я нахожусь на любой стандартной странице Wordpress. Однако, если я нахожусь в профиле пользователя, вместо этого отображаются ИХ уведомления! Я знаю, что по умолчанию администраторы могут видеть все уведомления, если они просто добавляют /notifications к любому ярлыку профиля, но это происходит и для обычных пользователей.

Это текущий код:

<?php global $bp; 

if( bp_has_notifications($bp->loggedin_user->id) ) : ?>

    <?php bp_get_template_part( 'members/single/notifications/notifications-loop' ); ?>

<div class="read-all-notifs"><a href="<?php bp_notifications_unread_permalink($bp->loggedin_user->id); ?>"> View All Notifications</a></div>

<?php else : ?>

    <?php bp_get_template_part( 'members/single/notifications/feedback-no-notifications' ); ?>


<?php endif; ?>

Я предполагаю, что это как-то связано с частью шаблона и некоторой функцией, которая принудительно использует идентификатор bp_displayed_user на странице Buddypress, так как я могу переопределить это, чтобы убедиться, что уведомления в моем всплывающем окне всегда для текущего пользователя на ЛЮБОЙ странице? У кого-нибудь есть идеи? Спасибо.


person Chris Anderson    schedule 31.03.2021    source источник


Ответы (1)


Я понял это с помощью разработчика. Это правильное форматирование для начальной части:

<?php if ( is_user_logged_in() && bp_has_notifications( array('user_id' => bp_loggedin_user_id(), 'per_page' => 10, 'search_terms' => false ) ) ) : ?>

Часть условий поиска была добавлена, потому что на любой странице результатов поиска она показывала цикл «Нет уведомлений» для всех.

person Chris Anderson    schedule 06.04.2021