【问题标题】:How to share database user information between two WordPress installations?如何在两个 WordPress 安装之间共享数据库用户信息?
【发布时间】:2018-09-14 23:44:53
【问题描述】:

我目前正在使用 PointFinder 主题安装两个 WordPress。一个是主网站(网站A),另一个是通过主网站(网站B)访问的子网站。

目标是,网站 A 与网站 B 共享其用户信息(usersusermetacomments)。

Website A
   |_ Website B (this one should access the user info from website A)

我已经研究过数据库架构和一些 php 文件。从理论上讲,我可以在“wp-config.php”中定义第二个数据库连接,并将每次调用都指向网站 B 的 php 文件中的 usersusermetacomments 表,并从网站 A 指向数据库。

但这似乎相当广泛且容易出错。任何其他想法如何解决这个问题?

更新/解决方案:

正如codiiv 在下面的回答中提出的那样,在不同的 WP 站点之间共享用户/元数据非常容易。当添加新用户时,不要忘记添加更新缺少的用户角色的脚本。这是我找到的最全面的链接:

https://kinsta.com/blog/share-logins-wordpress/

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    1) 要共享用户和 usermeta 信息,您可以在辅助(子站点)wp-config.php 文件中添加以下代码行

    define('CUSTOM_USER_TABLE', 'wp_users');
    define('CUSTOM_USER_META_TABLE', 'wp_usermeta');
    

    您需要将 wp_ 替换为正确的前缀

    2) 对于评论或其他表格,我还没有做足够的研究,但我认为只要两者在同一台服务器上,你就可以做到这一点。或者,您可以为 cmets 创建自定义 RSS 提要(包括完整评论),并在子站点中对其进行解析。

    【讨论】:

    • 非常感谢您的建议。我会在测试您的方法后立即报告。
    • 动态化前缀的最佳方式是全局 $wpdb; $prefix=$wpdb->前缀;
    • 您的意思是结合您在回答中描述的方法吗?或者通过修改 php 文件中的所有数据库查询作为另一种方法?
    • 我的意思不是硬编码用户和元用户表名。所以最好使用动态方式而不是wp_users,因为你的前缀可能不同于 wp_
    • 好的,现在可以了 :-) 但是还有一些额外的技巧需要完成。例如,添加一些脚本到 functions() 以便在添加新用户时更新缺少的角色。这是我找到的最全面的链接:kinsta.com/blog/share-logins-wordpress
    【解决方案2】:

    Sync all User Roles between two Wordpress Installs sharing the same wp_users and wp_usermeta tables.

    function ksu_save_role( $user_id, $role ) {
    
        // Site 1
        // Change value if needed
        $prefix_1 = 'first_';
    
        // Site 2 prefix
        // Change value if needed
        $prefix_2 = 'second_';
    
        $caps = get_user_meta( $user_id, $prefix_1 . 'capabilities', true );
        $level = get_user_meta( $user_id, $prefix_1 . 'user_level', true );
    
        if ( $caps ){
            update_user_meta( $user_id, $prefix_2 . 'capabilities', $caps );
        }
    
        if ( $level ){
            update_user_meta( $user_id, $prefix_2 . 'user_level', $level );
        }
    }
    
    add_action( 'add_user_role', 'ksu_save_role', 10, 2 ); 
    

    【讨论】:

      猜你喜欢
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多