您的目标是用最新内容创建一篇新帖子,还是列出包含最新内容的现有帖子?一般来说,后者更适合WP的正常工作。
Creating New Posts
这是可以做到的,但你要求的是一些复杂性。假设您可以将多篇帖子中的内容粘在一起,那么您将创建包含旧内容副本的新内容。
假设你可以把帖子粘在一起,这可能很难。考虑一下元数据。假设你的帖子A是绿色的,帖子B是红色的,你会把帖子A+B放在哪一类,绿色还是红色?也可能存在内容问题。您可能也没有使用类别(并且您的标记可能是不同的),因此这可能不是您的问题。
当你创建A+B时,你会这样创建:“A+B作为A存在于特定的时间,作为B存在于那个时间。”管理内容更改可能会变得困难。您还创建了一个没有来自a或B的评论的新帖子。再一次,对于您的设置来说,这可能不是问题。您提到了快照,所以您可能已经仔细考虑过了。
如果这就是你想要做的,你可能需要写一些东西来以你想要的方式处理它。话虽如此,WP已经存在很长时间了,一些研究可能会找到一个做类似事情的插件。它甚至可能非常相似,以至于您对结果感到满意。否则,编写这篇文章并不复杂,最佳实践可能是将其封装在插件中。
Listing Existing Posts
这可能是更“WordPress方式”的做法。这经常用于新闻稿和提要(如RSS)。一些很好的方法:
- A newsletter plugin 有短代码的可能会直接为您处理此问题。在您想要使用内容的页面上放置快捷码(或者您只是想写一份新闻稿)
- Themes 有时会内置这种功能。默认WP首页与此类似。拆分子主题并添加基于的页面模板
archive.php
如果您不习惯编写WP代码,那么使用过滤器是一件相对容易的事情 - Core functions 允许通过过滤器进行一些自定义。如果不编写代码,您可能无法完成很多工作。查看上的文档Customizing Feeds 以及
pre_get_posts
action. 对于前者(使用提要),您可能需要添加一些显示RSS提要的内容(短代码、小部件等),以引用您的自定义提要。对于后者,如果满足某些条件,您可能希望挂接到操作并修改页面查询,例如如果您位于要显示最近帖子的页面上简而言之,你会有一个页面,显示查询结果和你最近的帖子。Filtering/Sorting By Traffic
这是一个单独的问题,答案取决于您如何衡量流量。使用谷歌分析(Google Analytics)之类的工具是很常见的,在这种情况下,你必须附加到这些数据,以找出哪些帖子更受欢迎。我编写了从托管的统计编译器(如AW Stats或Modlogan)读取的代码,因此这是可能的,尽管并不简单。您可能还使用了其他一些跟踪方法。在您所做的工作中,您将运行一个帖子查询,以找出哪些帖子是您想要使用的。这可能会给你一个WP_Post
对象。按日期筛选很容易(有post_date
字段和apost_modified
字段)。由于您尝试订购的内容(流量)不在同一个表中,因此您可能希望通过post ID或post_name
, 并对结果列表(数组)重新排序。看见Sorting Arrays 在PHP文档中。
请记住,如果您的数据不是来自单个查询(就像您关联流量数据),那么过滤基本上就是排序和截断。也就是说,选择所有可能的相关帖子(可能按日期),根据流量对其进行排序,然后根据您想要的记录数将列表删除。从性能的角度来看,这并不是最便宜的过程,但如果每天或每周执行一次,则可以缓存结果,应该可以。
更新日期:Creating A Snapshot
如果尝试创建快照,则会遇到两个问题:
何时(或如何)创建快照?有一个cron
WP中的API,最近刚刚更新。对于许多用例来说,这可能已经足够了。听起来这可能就是你所需要的如何存储和重新显示结果?有很多地方可以存储查询结果,如wp_options
表或自定义帖子类型。再次公布结果可能更加复杂
为什么要创建快照?如果出于性能原因,现有的缓存解决方案(或其他类似的解决方案)可能会更易于设置和管理。如果是为了审计,您最好使用一些审计解决方案,或者只使用WP中已有的内容审批。