我添加了一个自定义的滑出框,可以在任何页面上显示用户的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; ?>
我假设这与模板部分和一些函数有关,这些函数在Buddypress页面上强制显示bp_用户ID,那么我如何覆盖它以确保弹出窗口中的通知始终针对任何页面上的当前用户?有人有什么想法吗?谢谢
我在开发人员的帮助下解决了这个问题。这是初始零件的正确格式:
<?php if ( is_user_logged_in() && bp_has_notifications( array('user_id' => bp_loggedin_user_id(), 'per_page' => 10, 'search_terms' => false ) ) ) : ?>
添加搜索词部分是因为在任何搜索结果页面上,它都显示了每个人的“无通知”循环。