중간 트랜잭션 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 사이트 서버에 설치 하 고 데이터를 공유에 적용 됩니다. )