wpdb::set_prefix( string $prefix, bool $set_table_names = true ): string|WP_Error
Sets the table prefix for the WordPress tables.
Parameters
-
$prefix
string Required -
Alphanumeric name for the new prefix.
-
$set_table_names
bool Optional -
Whether the table names, e.g. wpdb::$posts, should be updated or not.
Default:
true
Return
Source
File: wp-includes/class-wpdb.php
.
View all references
public function set_prefix( $prefix, $set_table_names = true ) {
if ( preg_match( '|[^a-z0-9_]|i', $prefix ) ) {
return new WP_Error( 'invalid_db_prefix', 'Invalid database prefix' );
}
$old_prefix = is_multisite() ? '' : $prefix;
if ( isset( $this->base_prefix ) ) {
$old_prefix = $this->base_prefix;
}
$this->base_prefix = $prefix;
if ( $set_table_names ) {
foreach ( $this->tables( 'global' ) as $table => $prefixed_table ) {
$this->$table = $prefixed_table;
}
if ( is_multisite() && empty( $this->blogid ) ) {
return $old_prefix;
}
$this->prefix = $this->get_blog_prefix();
foreach ( $this->tables( 'blog' ) as $table => $prefixed_table ) {
$this->$table = $prefixed_table;
}
foreach ( $this->tables( 'old' ) as $table => $prefixed_table ) {
$this->$table = $prefixed_table;
}
}
return $old_prefix;
}
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |