我使用以下代码在模板中显示登录用户未读消息计数。
<?php if (messages_get_unread_count() != 0) { ?>
<div id="message_count">
<div class="countspan">
<?php echo messages_get_unread_count(); ?>
</div>
</div>
<?php } ?>
这很好用但是需要页面刷新才能更新。由于我在整个网站及其中的自定义应用程序中大量使用ajax驱动的导航,因此这不是一个令人满意的解决方案。
如何让计数器自动更新?
我玩过'lvive notifications'插件,它每隔10秒轮询一次srver以提供实时通知,但当然这不会与我的自定义未读消息计数器进行交互。
任何想法的家伙?我真的可以使用帮助。
答案 0 :(得分:5)
我已经解决了......
事实证明,buddypress已经为很多这些东西构建了ajax函数......
所以对于其他想要做同样事情的人......这是一个简单的例子,将'count'放在一个带有以下id的链接中。
<a id="user-messages">
<span><?php echo messages_get_unread_count(); ?></span>
</a>
Buddypress'javascript然后为你做其余的事。简单!
Mana感谢您的建议。
答案 1 :(得分:2)
您可以setTimeout定期fire a request使用调用您messages_get_unread_count()
的服务器并返回一个值。
然后根据返回的值,您可以使用更新的计数显示或隐藏<div id="message_count">
。
答案 2 :(得分:1)
你可以使用jQuery来调用一个单独的php文件。
jQuery.post('call.php',{action:“get”},function(data){
jQuery('#content').append(data);
});
本教程将引导您完成http://vavumi.com/?p=257