• I’d like to have 2 or more installations of wordpress in the same database that all share the same login — so the user registers once and can login to any of the blogs using that one login.

    In other words, I’m talking about integrating 2 WordPress blogs into using a common login. It seems simple enough — I have an idea of how to do it but I’m a hobbyist programmer and there may be problems I haven’t anticipated. It seems like an idea someone else would have already come up with and solved.

    Would the following approach work?

    1. In the config file, add a line to define a table prefix for the table(s) used for users and the login. This is in addition to the line already there for ‘table_prefix’.

    $table_prefix = 'wp_';
    $table_prefix_login = 'wp_';

    2. Then go through all the wordpress files using search/replace, find any code referring to the user/login table(s), and replace $table_prefix with $table_prefix_login. Now the user tables are defined separately from the other tables.

    3. Install this new version of wordpress 2 or more times into the same database using a different prefix for each installation:

    In mainblog config file:
    $table_prefix = 'mainblog_';
    $table_prefix_login = 'mainblog_';

    In 2ndblog config file:
    $table_prefix = '2ndblog_';
    $table_prefix_login = '2ndblog_';

    4. After they are installed and tested, in the 2ndblog’s config file, change the second line so it uses the mainblog’s user tables:

    In 2ndblog config file:
    $table_prefix = '2ndblog_';
    $table_prefix_login = 'mainblog_';

    Would that work?

Viewing 7 replies - 1 through 7 (of 7 total)
  • Follow the link(s) – there is something similar discussed here:
    https://www.ads-software.com/support/topic/54239?replies=7#post-297804

    Thread Starter d9r

    (@d9r)

    Thanks! I figured someone else had already discussed this but I couldn’t find it in the search. I looked all over the codex first, and searched here first — like a good help-seeker should. ??

    Thread Starter d9r

    (@d9r)

    That links to this post:
    https://www.ads-software.com/support/topic/42793?replies=8#post-240179

    He says to do exactly what I was thinking (in theory), except the wordpress authors already did the hard part of defining the user table separately, and all I have to do is redefine it in one place. Pretty cool indeed!

    Kafkaesqui wrote:

    Here’s what I’d recommend (only works if the tables for both blogs are in the same database):

    First, choose which blog acts as primary, that is the blog the other will “slave” off of for posts and whatnot.

    Next, decide which elements the secondary blog will access on the primary. You’ll want posts and categories to be the same, but how about users? Or links?

    Finally, edit the secondary blog’s wp-settings.php (in the blog’s root). Look in it for this section:

    // Table names
    $wpdb->posts = $table_prefix . ‘posts’;
    $wpdb->users = $table_prefix . ‘users’;
    $wpdb->categories = $table_prefix . ‘categories’;
    $wpdb->post2cat = $table_prefix . ‘post2cat’;
    $wpdb->comments = $table_prefix . ‘comments’;
    $wpdb->links = $table_prefix . ‘links’;
    $wpdb->linkcategories = $table_prefix . ‘linkcategories’;
    $wpdb->options = $table_prefix . ‘options’;
    $wpdb->postmeta = $table_prefix . ‘postmeta’;

    Assuming the primary blog’s table prefix is wp_, for each table shared between the blogs change $table_prefix to ‘wp_’, like so:

    // Table names
    $wpdb->posts = ‘wp_posts’;
    $wpdb->users = $table_prefix . ‘users’;
    $wpdb->categories = ‘wp_categories’;
    $wpdb->post2cat = ‘wp_post2cat’;
    $wpdb->comments = ‘wp_comments’;
    $wpdb->links = $table_prefix . ‘links’;
    $wpdb->linkcategories = $table_prefix . ‘linkcategories’;
    $wpdb->options = $table_prefix . ‘options’;
    $wpdb->postmeta = ‘wp_postmeta’;

    Note I’ve modified just those above that are required to keep posts “mirrored” on both blogs. The other tables are up to you. At minimum keep $wpdb->options as is, to retain the settings for the blog (including blog name, permalinks, and so on).

    Doing it this way will require keeping this file–or at least the changes–untouched during upgrades to your WordPress installation. Keep that in mind.
    Posted: 2005-08-24 19:00:12 #

    (For my question, he says to modify just the line for $wpdb->users.)

    Thread Starter d9r

    (@d9r)

    My login works! Thanks, moshu, for telling me where to find the answer to my question. Thanks, Kafkaesqui, for explaining it so well in the other post. Thanks, WordPress authors, for writing the programming in such a way that made this so easy to do.

    What a fun new toy this WordPress is turning out to be. I’ve also begun writing my own theme to integrate it into an existing site, and that theme installation system is awesome — for lack of better words. Although I don’t know a lot of programming, it’s easy to work with. It makes me feel smart. ??

    Dean

    Thread Starter d9r

    (@d9r)

    In wp-settings.php there’s this line:
    $wpdb->users = CUSTOM_USER_TABLE;

    Why is there a separate variable for an optional custom users table? Why not simply define the custom users table in the group of settings just above, in this line:
    $wpdb->users = $table_prefix . 'users';

    Here’s the whole block:

    // Table names
    $wpdb->posts = $table_prefix . ‘posts’;
    $wpdb->users = $table_prefix . ‘users’;
    $wpdb->categories = $table_prefix . ‘categories’;
    $wpdb->post2cat = $table_prefix . ‘post2cat’;
    $wpdb->comments = $table_prefix . ‘comments’;
    $wpdb->links = $table_prefix . ‘links’;
    $wpdb->linkcategories = $table_prefix . ‘linkcategories’;
    $wpdb->options = $table_prefix . ‘options’;
    $wpdb->postmeta = $table_prefix . ‘postmeta’;

    if ( defined(‘CUSTOM_USER_TABLE’) )
    $wpdb->users = CUSTOM_USER_TABLE;

    (I’m assuming CUSTOM_USER_TABLE is a separate variable — there’s no $dollar-sign, which raises another question.)

    D9r: Could you tell me how exactly you solve that login integration problem? I read all the post mentioned in this one, and I have two WP now sharing the same user table, but I still need to log in twice on my two WPs.

    there’s a plugin called multiply that seems to suit you.

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Multiple WordPress Blogs using One Login’ is closed to new replies.