is_site_meta_supported()
云策文档标注
概述
is_site_meta_supported() 函数用于检查站点元数据(site meta)是否启用,通过验证 'blogmeta' 数据库表是否存在。结果作为主网络的全局设置缓存,避免重复查询。
关键要点
- 函数检查 'blogmeta' 表是否存在,以确定站点元数据支持状态
- 结果缓存在网络选项中(site_meta_supported),提升性能
- 仅在多站点(Multisite)环境下有效,非多站点返回 false
- 返回布尔值:true 表示支持,false 表示不支持
代码示例
function is_site_meta_supported() {
global $wpdb;
if ( ! is_multisite() ) {
return false;
}
$network_id = get_main_network_id();
$supported = get_network_option( $network_id, 'site_meta_supported', false );
if ( false === $supported ) {
$supported = $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->blogmeta}'" ) ? 1 : 0;
update_network_option( $network_id, 'site_meta_supported', $supported );
}
return (bool) $supported;
}注意事项
- 函数首次调用时会执行数据库查询,后续调用使用缓存值
- 相关函数包括 update_network_option()、get_network_option()、get_main_network_id() 等
- 自 WordPress 5.1.0 版本引入
原文内容
Determines whether site meta is enabled.
Description
This function checks whether the ‘blogmeta’ database table exists. The result is saved as a setting for the main network, making it essentially a global setting. Subsequent requests will refer to this setting instead of running the query.
Source
function is_site_meta_supported() {
global $wpdb;
if ( ! is_multisite() ) {
return false;
}
$network_id = get_main_network_id();
$supported = get_network_option( $network_id, 'site_meta_supported', false );
if ( false === $supported ) {
$supported = $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->blogmeta}'" ) ? 1 : 0;
update_network_option( $network_id, 'site_meta_supported', $supported );
}
return (bool) $supported;
}
Changelog
| Version | Description |
|---|---|
| 5.1.0 | Introduced. |