4

我正在使用以下代码在模板中显示登录用户的未读消息计数。

  <?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 通知”插件,它每 10 秒轮询一次服务器以提供实时通知,但当然这不会与我的自定义未读消息计数器交互。

有什么想法吗?我真的可以使用帮助。

4

3 回答 3

5

我已经解决了...

事实证明,buddypress 已经为很多这样的东西内置了 ajax 函数......

所以对于其他想要做同样事情的人......这是一个简单的例子,将“计数”放在具有以下 id 的链接中。

  <a id="user-messages">

<span><?php echo messages_get_unread_count(); ?></span>
</a>

Buddypress 的 javascript 会为您完成剩下的工作。简单的!

法力感谢您的建议。

于 2011-09-23T08:30:22.067 回答
2

您可以使用setTimeout定期向调用您的服务器发出请求messages_get_unread_count()并返回一个值。

然后根据返回的值,您可以<div id="message_count">使用更新的计数显示或隐藏您的值。

于 2011-09-22T23:37:05.443 回答
1

您可以使用调用单独的 php 文件的 jQuery 来执行此操作。

jQuery.post('call.php',{ action: "get"}, function (data) {

        jQuery('#content').append(data);

    });

本教程将引导您完成http://vavumi.com/?p=257

于 2012-02-22T13:43:43.357 回答