WordPress 두 개발 자습서 노트: 다중 사이트 사용자 데이터 공유

출처: 인터넷
작성자: 사용자

중간 트랜잭션 http://www.aliyun.com/zixun/aggregation/6858.html "> seo 진단 Taobao 게스트 클라우드 호스트 기술 홀

최근, 고객 자신의 회사 사이트는 영어 버전을 할 수 있도록 작은 V 물었고 두 사이트 사용자 데이터의 영어 버전과 중국어 버전 상호 운용 될 수 및 사이트의 정상적인 작동에는 영향을 미치지 않습니다. 좋아, 먼저 공식 워드 프레스 문서를 읽고 계란 고통을 던져 시작: "WordPress 데이터 구조 지도"는 사용자 데이터 테이블 WordPress (Wp_users Wp_usermeta)은 상대적으로 독립적인 발견 그럼 우리가 직접 두 사이트에 있는 다른 데이터에 사용자 데이터의 영향을 고려 하지 않고 두 사이트의 사용자 데이터베이스를 공유할 수 있습니다. 솔루션 말 다음 작은 V:

11545.html 가정 "> 우리 cn.v7v3.com 한 두 개의 워드 프레스 사이트는 (데이터 테이블 접두사는 v7v3cn_)와 다른 en.v7v3.com (데이터 시트 접두사는 v7v3en_), 우리는 cn.v7v3.com 주요 사이트와 보조 사이트의 영어 버전의 주요 역으로 en.v7v3.com 것입니다.

먼저 En.v7v3.com wp_config.php 파일을 열고 다음 코드를 추가:

정의 ('custom_user_table', 'v7v3cn_users'); 기본 사이트에 대 한 V7v3cn_ 데이터베이스 접두사

정의 ('custom_user_meta_table', 'V7v3cn_usermeta');

위의 코드를 추가한 후 초기 상호 운용성을 실현 하는 두 사이트 간의 사용자 데이터 하지만 마스터 역을 사용 하 여 보조 사이트에 로그인을 하는 경우 메시지가 나타납니다 충분 한 권한을 가질 수 없다. 이유는 마스터 역 저장소 사용자 권한이 값은 V7V3CN로 시작 하기 때문에 예를 들어, 관리자 사용자 ID 마스터 역의 관리자는 1, 역할은 관리자, 테이블 같은 레코드에는 다음:

User_id-1, Meta_key v7v3cn_capabilities-> meta_value->는: 1: {s:13: "관리자", s:1: "1";}

데이터베이스의 영국 측 하지 않은 그래서 v7v3en_ 권한 값 레코드의 시작을 되 묻는 권한의 부족. 해결 방법은 SQL 문을 실행 하는 것입니다.

V7v3en_로 시작 하는 데이터베이스에 권한 레코드 값 추가

'Dbname'에 삽입. 'Wp_usermeta' ('umeta_id', 'user_id', 'meta_key', 'Meta_value') 값 (NULL, '1', ' V7v3en_ 기능 ','는: 1: {s:13: "관리자", s:1: "1";} ');

이 두 사이트에 로그온 할 1 관리자의 사용자 ID를 허용 경우 새로운 사용자의 생성, 관리자 또는 일반 사용자가 권한이 부족 증명된 될 것입니다 솔루션 인지 사용자의 등록 후크 SQL 데이터베이스 작업을 추가 하려면:

마스터 역에 대 한 접두사를 설정 하 고 다른 사이트 공유 사이트에 대 한 사용자 데이터 시트

$main _prefix = 'v7v3cn_';

V7v3en에 의해 접두사가 자식 역에 대 한 접두사를 설정

$addi _prefixs = 배열 ('V7v3en_');

등록 하는 사용자 고리 기능 추가

Add_action ('User_register', 'dup_capabilities');

기능 dup_capabilities ($user _id) 없음

글로벌 $main _prefix, $addi _prefixs;

다른 역할에 대 한 값이 다른 때문에 바로 사용자의 값을 가져옵니다.

경우 ($cap _val Get_user_meta ($user _id, $main _prefix. '기능', true) =} {만약 (카운트 ($addi _prefixs) > 0) {Forea 채널 ($prefix로 $addi _prefixs) {Add_user_meta (True $user _id, $prefix. '기능', $cap _val);} } }

위젯 또는 주제에 추가 된 functions.php 파일 위의 코드를 만들고 한 번에 모두 수행 됩니다. 로컬 테스트 wordpress3.4 버전을 사용 하 여 거기에 작은 v 괜찮습니다, 하지만 오류를 사용 하 여 고객의 사이트에서 확인 이유, wordpress3.5 버전 사이트의 원래 고객 측면 3.5의 코드는 꽤 3.4와 같은, 그래서 3.5 이상 버전에 대 한 다음 코드를 사용 하 여:

Add_action ('User_register', 'dup_capabilities');

Add_action ('profile_update', 'dup_capabilities');

기능 dup_capabilities ($user _id) 없음

여기 데이터 테이블 접두사를 설정 하려면 할 분할 하지 주요 역 어린이 역, 그것에 모든 서 면된.

$prefixs = 배열 ('V7v3cn_', 'v7v3en_'); 글로벌 $table _prefix; $cap _val = Get_user_meta ($user _id, $table _prefix. '기능', true); 만약 (! ($cap _val) 빈) {foreach ($prefix로 $prefixs) {경우 ($prefix! = $table _prefix) Update_user_meta ($user _id, $pref '9. 기능', $cap _val); } } }

이 자료 출처: http://v7v3.com/wpjiaocheng/201307112.html 기입 하십시오 지정 소스! 협조 하 여 주셔서 감사 합니다.

마지막으로, 코드의 마지막 조각을 위의 코드와 같은 지금 두 사이트 사용자 데이터 완전히 상호 운용할 수 있습니다. 추 신: 위의 방법을 두 WordPress 사이트 서버에 설치 하 고 데이터를 공유에 적용 됩니다. )

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.