On this page
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
$scopestring Optional-
Possible values include
'all','global','ms_global','blog', or'old'tables. Default'all'.Default:
'all' $prefixbool Optional-
Whether to include table prefixes. If blog prefix is requested, then the custom users and usermeta tables will be mapped.
Default:
true $blog_idint Optional-
The blog_id to prefix. Used only when prefix is requested.
Defaults towpdb::$blogid.
Return
string[] Table names. When a prefix is requested, the key is the unprefixed table name.
Source
File: wp-includes/class-wpdb.php. View all references
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;
}
Related
Uses
| Uses | Description |
|---|---|
| wpdb::get_blog_prefix() wp-includes/class-wpdb.php | Gets blog prefix. |
| is_multisite() wp-includes/load.php | If Multisite is enabled. |
Used By
| Used By | Description |
|---|---|
| wp_uninitialize_site() wp-includes/ms-site.php | Runs the uninitialization routine for a given site. |
| upgrade_network() wp-admin/includes/upgrade.php | Executes network-level upgrade routines. |
| dbDelta() wp-admin/includes/upgrade.php | Modifies the database based on specified SQL statements. |
| is_blog_installed() wp-includes/functions.php | Determines whether WordPress is already installed. |
| ms_not_installed() wp-includes/ms-load.php | Displays a failure message. |
| wpdb::set_prefix() wp-includes/class-wpdb.php | Sets the table prefix for the WordPress tables. |
| wpdb::set_blog_id() wp-includes/class-wpdb.php | Sets blog ID. |
Changelog
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/classes/wpdb/tables