If I'm running a multi-site setup and I create a new table and add it to the WordPress database, will it be accessible to all sites or is it created to be site specific?


It's up to you.

Normally when you create and query a table you use the $wpdb->prefix property as part of the table name. In a multisite install this prefix includes the current site ID. So if you use dbDelta() to create a table with the name $wpdb->prefix . 'tablename', then — assuming the default prefix of wp_ — this table will be created as wp_2_tablename, and wp_3_tablename etc. This ultimately means that each site in the network gets its own copy of the table, and you query the current site's table with $wpdb->prefix . 'tablename'.

However, if you want a single table shared across the network, then you should create and query it with $wpdb->base_prefix, which will be the same on all sites (wp_, if you use the default). That way if you query it with $wpdb->base_prefix . 'tablename' the same table will be queried regardless of which site you're currently on.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.