This post was published in 2021-06-24. Obviously, expired content is less useful to users if it has already pasted its expiration date.
2021.08.29更新:本文的python3实现代码:WordPress cache preload code (python3)
这篇文章介绍了什么是(cache) preload:How is the cache preloaded? - WP Rocket Knowledge Base (wp-rocket.me)
如果仅仅是遍历sitemap.xml进行cache preload,往往容易忽略这3种url(它们应该都不会出现在sitemap里):
1,Pagination
往往只有第1页(默认页)会出现在sitemap里,其他页面可能需要手动解析。
2,/embed/
一个典型的/embed/举例如下,它的url为:https://truxton2blog.com/garbage-archives/embed/
像这样的页面当然也不会出现在sitemap等列表中,所以需要手动解析html获取。(table: wp_postmeta里好像也有?但我无法确定这些数据是不是wordpress.org官方引入的)
对速度本来就慢的小站点来说,同一页面里加载多个不同url的/embed/简直就是灾难,不仅要耗费相当长的时间,还影响页面美观性(/embed/区块在等待加载时非常难看)。
3,monthly archive
如果你在widget里面添加了archives,那么就有可能遇到这种格式的链接:
https://truxton2blog.com/2021/08/
https://truxton2blog.com/2021/07/
...
同样,monthly archive一般也不会出现在sitemap里面。获取方式:可以通过一个regex解析html来获取(绝大多数情况下只需要解析1次就可以了):
(?<=href=\')+https:\/\/example.com\/\d+\/\d+\/(?=\')