사용자 정의 된 sunrise.php 파일을 사용하여이를 수행 할 수 있습니다. 이것은 본질적으로 도메인 매핑 플러그인이 작동하는 방식이지만 꽤 프론트 엔드를 사용합니다. 사용자 정의를 위해 기본적으로 동일한 작업을 수행하는 간단한 PHP를 작성할 수 있습니다.
멀티 사이트의 본질은 어떤 사이트를 제공할지 파악하는 것입니다. 도메인 맵핑 플러그인은 wp_domain_mapping 테이블을 작성하고 정보를 저장하여이를 수행합니다. 따라서 xxx.com에 대한 요청을 받으면 해당 테이블을보고 blog_id 123에 해당하는 것을 확인합니다.
먼저 워드 프레스 설정을하고 여러 사이트로 만듭니다. 우리가 모든 것을 바꿀 것이기 때문에 그것이 실제로 사는 곳은 중요하지 않습니다. 간단히하기 위해 blog.stackexchange.com에 넣고 하위 디렉토리 유형 사이트로 만들었습니다 (더 쉬운 사이트). 생성 된 서브 디렉토리는 아마도 슬러그 일 것입니다. / wordpress, / apple, / 무엇이든
예, 우선 blog.stackexchange.com/wordpress에 게시하고 있습니다. 이를 준비 환경으로 고려하십시오. 각 사이트를 만들 때 매핑을 설정하기로 결정할 때까지 여기에서 작업 할 수 있습니다.
플러그인없이 도메인 매핑을 직접 수행하려면 다음과 같이하십시오.
1 단계 : define( 'SUNRISE', 'on' );
wp-config.php 파일의 맨 위에 추가 하십시오.
2 단계 : wp-content 디렉토리에 sunrise.php 파일을 만듭니다. 넣어 <?php
시작하는 상단.
3 단계 : sunrise.php 파일에서로드 할 사이트를 결정하기위한 논리가됩니다.
$_SERVER[ 'HTTP_HOST' ]
변수 를 기반으로합니다 . 그렇게하는 방법은 간단합니다. 그러나하고 싶습니다. 정규식을 작성 '/blog\.(.*)\.stackexchange\.com/'
하여 데이터베이스에서 찾은 다음 해당 비트를 찾으려면 그렇게 할 수 있습니다.
여기서 "서브 디렉토리"와 동일한 슬러그를 사용하기 때문에 별도의 테이블이 필요하지 않습니다. 기본 wp_blogs 테이블에서 필요한 사이트를 찾을 수 있습니다. 이것과 비슷한 것 :
$current_blog = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE path = '/wordpress/' LIMIT 1" );
$ current_blog가 있으면 다음 코드가 필요합니다.
$current_blog->domain = $_SERVER[ 'HTTP_HOST' ];
$current_blog->path = '/';
$blog_id = $current_blog->blog_id;
$site_id = $current_blog->site_id;
$current_site = $wpdb->get_row( "SELECT * from {$wpdb->site} WHERE id = '{$current_blog->site_id}' LIMIT 0,1" );
$current_site->blog_id = $current_blog->blog_id;
이것은 WordPress의 MU 기능이 수행하는 대신 $ current_blog 및 $ current_site 전역 변수를 사전 정의합니다.
이것은 DNS가 사이트를 가리키고 가상 호스팅 항목을 정렬 한 후에 사이트를 시작하고 작동시키기에 충분하지만 HTML 코드에 사용되는 대부분의 정적 URL은 여전히 blog.stackexchange.com을 가리 킵니다. / wordpress는 사이트가 실제로있는 위치이기 때문입니다. 또한 정식 URL 기능은 URL을 좋아하지 않으며 리디렉션 할 수도 있습니다.
이러한 문제를 해결하려면 사이트와 관련된 여러 URL을 미리 정의하고 싶을 수도 있습니다. WP_SITEURL 및 WP_HOME과 같은 것. 또한 WP_CONTENT_URL, WP_PLUGIN_URL 및 WPMU_PLUGIN_URL입니다. 조정되는 대부분의 URL을 다루어야합니다.
마지막으로 'COOKIE_DOMAIN'을 설정하고 싶을 것입니다. 로그인 전체를 공유 할 수 있기 때문에 stackexchange.com으로 설정하거나 공유 로그인을 원하지 않는 경우 더 높게 설정할 수 있습니다.
일반적인 stackexchange 로그인 시스템을 WordPress에 통합하는 것에 대해 이야기하고 싶다면 그것에 대해서도 질문에 대답 할 수 있지만 조금 더 자세한 답변이 될 것입니다. :)
도움이 필요하시면 언제든지 이메일을 보내 주시기 바랍니다. 기꺼이 도와 드리겠습니다 : wordpress.org의 오토.