WordPress 6.1 中的多站点改进

将元数据API用于网络选项

访问网络选项的方式在 WordPress 6.1 中发生了变化。网络选项一直存储在一个meta名为sitemeta. 这个名字很容易混淆,因为“站点”在这个上下文中的意思是“网络”,不要与博客 meta混淆,用于存储站点元数据。在 WordPress 6.1 之前,函数get_network_optionadd_network_optionupdate_network_optionsdelete_network_option使用自定义数据库查询和缓存。这导致了一些性能问题和大量需要维护的代码。

在 WordPress 6.1 中,网络选项功能已更新为使用更成熟的元数据 API,该 API 已用于其他对象类型的元数据,如帖子、术语和用户。这有效地使函数get_network_option类似于get_metadata. 这有许多优点,包括:

  • 与其他元数据类型的一致性
  • 支持register_meta功能,例如默认值
  • 改进的缓存启动 
  • 更少的数据库查询,因为所有网络选项都在一个请求中启动 

除了这些改进之外,WP_Network_Query还有一个名为的新参数update_network_meta_cache允许查询中的所有网络在单个查询中启动网络选项。 

此更改的一个副作用是使用整数值的新更新的网络选项可能会导致返回字符串。将此类值与整数比较一起使用时,允许强制转换为 int 很重要。在旧的实现中,选项的第二个页面加载会导致返回一个字符串。此更改可以被视为修复,但它与当前行为不同。 

此更改使缓存组site-options不再使用,并且在将来的版本中将被删除。 

如需更多信息,请访问Trac 票证 #37181。 

在网络选项中存储网络的主站点 ID

在WordPress 6.1 中创建多站点时,网络上的主站点 ID 存储在网络选项中。由于网络上的主要站点在大多数情况下都不会改变,因此这是一个可以存储以供将来参考的值。这节省了WP_Site_Query在引导过程中按域和路径查找主站点的调用,这使得此查找浪费且不需要。如上所述,此更改还有助于设置多个网络,因为网络选项是在单个请求中启动的。这意味着在查找多个网络时,主站点 ID 现在与其他网络选项一起启动,从而减少了数据库查询/缓存查找。 

订阅评论
提醒
guest的头像

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x