我知道如何使用get\\u posts函数的include和exclude参数,但如何告诉get\\u posts排除文档及其下的每个子页面?
你不能,get_posts
不会搜索子帖子如果你排除了某些内容,你必须准确地告诉它你想要排除的内容
我知道我可以使用get children()收集子页面的所有ID,然后在exclude参数中附加这些ID的数组,但是没有更好更快的方法吗?
这几乎就是你应该做的,除了:
不要使用children
或get_posts
, 使用WP_Query
对于这两种情况,请不要使用exclude参数,请求比需要更多的帖子,然后在PHP中手动检查,这将大大加快速度,因为exclude使得查询非常昂贵(随着帖子数量的增加,这些查询的成本也会增加)请记住,始终查询您想要的内容,而不是您不想要的内容。当你说你不想要什么东西时,数据库必须收集每一篇帖子,过滤掉那些不匹配的帖子,创建第二个数据集,然后在不排除新数据集的情况下运行查询。即使您只需要2到3个帖子,它也会加载所有内容。这是真的,不包括帖子ID、类别中的帖子、具有特定帖子元值的帖子等