函数文档

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.

Return

bool True if site meta is supported, false otherwise.

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.