我希望通过使用短代码(运行bbPress 2 +未读的主题插件)来显示未读的bbPress主题列表。
未读插件会创建一个名为postmeta
的{{1}}时间戳(其中X是当前登录的用户ID)。要显示未读主题列表,我会搜索所有包含bbpress_unread_posts_last_visit_X
。
利用现有的bbpress_unread_posts_last_visit_X < _bbp_last_active_time
短代码 - 显示所有主题的列表并处理自定义bbpress主题模板等。
因此,我向[bbp-topic-index]
应用了一个过滤器,该过滤器添加了一个新的bbp_after_has_topics_parse_args
参数,用于查找此新的未读帖子密钥meta_query
。然后,我必须从bbpress_unread_posts_last_visit_X
过滤原始生成的SQL,以便调整SQL,使其与其他postmeta值进行比较,而不是get_meta_sql
的硬编码值。
如果没有令人讨厌的meta_query
黑客,有没有人能够找到更好的方法来实现这一目标?这个快速解决方案的主要问题是,如果您点击未读列表中的“下一页”,它将转到所有主题的正常下一页(未读或未读)。
代码:
https://gist.github.com/dtbaker/5906404
在这里实现(滚动到底部):
http://ultimateclientmanager.com/forums/
编辑:将此短代码放在自己的页面上可以正常工作并解决分页问题(例如:http://ultimateclientmanager.com/forums/unread-forum-posts/)
答案 0 :(得分:0)
Heyho,
我在你的插件中发现了一个小bug。您在bbp_unread_posts_OnTopicVisit()函数中使用time(),因此您忽略了时区差异。
解决方案:使用wordpress函数current_time('timestamp')
代替time()
。