wpdb::tables( string $scope = 'all', bool $prefix = true, int $blog_id ): string[]

Returns an array of WordPress tables.

Description

Also allows for the CUSTOM_USER_TABLE and CUSTOM_USER_META_TABLE to override the WordPress users and usermeta tables that would otherwise be determined by the prefix.

The $scope argument can take one of the following:

  • ‘all’ – returns ‘all’ and ‘global’ tables. No old tables are returned.
  • ‘blog’ – returns the blog-level tables for the queried blog.
  • ‘global’ – returns the global tables for the installation, returning multisite tables only on multisite.
  • ‘ms_global’ – returns the multisite global tables, regardless if current installation is multisite.
  • ‘old’ – returns tables which are deprecated.

Parameters

$scopestringoptional
Possible values include 'all', 'global', 'ms_global', 'blog', or 'old' tables. Default 'all'.

Default:'all'

$prefixbooloptional
Whether to include table prefixes. If blog prefix is requested, then the custom users and usermeta tables will be mapped.

Default:true

$blog_idintoptional
The blog_id to prefix. Used only when prefix is requested.
Defaults to wpdb::$blogid.

Return

string[] Table names. When a prefix is requested, the key is the unprefixed table name.

Source

public function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) {	switch ( $scope ) {	case 'all':	$tables = array_merge( $this->global_tables, $this->tables );	if ( is_multisite() ) {	$tables = array_merge( $tables, $this->ms_global_tables );	}	break;	case 'blog':	$tables = $this->tables;	break;	case 'global':	$tables = $this->global_tables;	if ( is_multisite() ) {	$tables = array_merge( $tables, $this->ms_global_tables );	}	break;	case 'ms_global':	$tables = $this->ms_global_tables;	break;	case 'old':	$tables = $this->old_tables;	if ( is_multisite() ) {	$tables = array_merge( $tables, $this->old_ms_global_tables );	}	break;	default:	return array();	}	if ( $prefix ) {	if ( ! $blog_id ) {	$blog_id = $this->blogid;	}	$blog_prefix = $this->get_blog_prefix( $blog_id );	$base_prefix = $this->base_prefix;	$global_tables = array_merge( $this->global_tables, $this->ms_global_tables );	foreach ( $tables as $k => $table ) {	if ( in_array( $table, $global_tables, true ) ) {	$tables[ $table ] = $base_prefix . $table;	} else {	$tables[ $table ] = $blog_prefix . $table;	}	unset( $tables[ $k ] );	}	if ( isset( $tables['users'] ) && defined( 'CUSTOM_USER_TABLE' ) ) {	$tables['users'] = CUSTOM_USER_TABLE;	}	if ( isset( $tables['usermeta'] ) && defined( 'CUSTOM_USER_META_TABLE' ) ) {	$tables['usermeta'] = CUSTOM_USER_META_TABLE;	}	}	return $tables; } 

Changelog

VersionDescription
6.1.0old now includes deprecated multisite global tables only on multisite.
3.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.