기본 블로그가있는 WordPress Multisite 네트워크가 있고 모든 컨텐츠가 해당 블로그로 이동되었다고 가정하면 어떻게 네트워크를 표준 WordPress 비 네트워크 비 멀티 사이트 설치로 다시 축소 할 수 있습니까?
기본 블로그가있는 WordPress Multisite 네트워크가 있고 모든 컨텐츠가 해당 블로그로 이동되었다고 가정하면 어떻게 네트워크를 표준 WordPress 비 네트워크 비 멀티 사이트 설치로 다시 축소 할 수 있습니까?
답변:
다중 사이트 설치에서 단일 인스턴스로 사이트를 추출하는 단계를 수행했습니다.
DELETE FROM wp_usermeta WHERE user_id NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );DELETE FROM wp_users WHERE ID NOT IN( SELECT distinct(user_id) FROM wp_usermeta where meta_key LIKE 'wp_SITEID_%' );UPDATE wp_usermeta SET meta_key = REPLACE( meta_key, 'wp_SITEID_', 'wp_' ) WHERE meta_key LIKE 'wp_SITEID_%';UPDATE wp_options SET option_name = REPLACE( option_name, 'wp_SITEID_', 'wp_' ) WHERE option_name LIKE 'wp_SITEID_%';wp-config.php'설치 실행'을 클릭하지 마십시오.blogs.dir/SITE_ID/files하고 uploads사이트 URL을 변경하는 경우로 검색 oldsite.com하고로 교체하십시오 newsite.com.상당한 노력과 데이터베이스 편집에주의를 기울여야하지만 모든 설정 등을 그대로 유지하면서 기존 다중 사이트에서 단일 사이트를 추출하는 유일한 방법입니다.
편집하다:
@Jake가 발견했듯이 예를 들어 수행해야 할 마지막 단계를 언급하는 것을 잊었습니다. 기존 URL을 검색 / 교체합니다. 그에 따라 목록을 업데이트했습니다.
SITEID올바른 사이트 ID로 변경했을 때 7 단계의 아무 것도 효과가 없었습니다 . 대신 테이블 에서 siteurl및 home옵션을 업데이트해야 할 수도 있습니다 wp_options. 이것의 나머지는 꽤 좋은 점검표였습니다. 감사.
새 블로그를 다시 설치하지 않고 멀티 사이트 설치를 제거 할 수 있습니다. 단계를 따르십시오.
WP_ALLOW_MULTISITEwp-config.php에서 상수 를FALSE다음 wp-config.php과 같이 에서 MU 설정을 제거하거나 주석 처리하십시오 .
/**
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/wordpress/';
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/wordpress/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
*/.htaccess아래 소스와 같이 에서 MU 설정을 제거하십시오 .
# BEGIN WordPress
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress백엔드에서 새 영구 링크를 작성하고 WP에 대해 불가능한 경우이 파일에 대한 쓰기 권한에 wp-admin/options-permalink.php결과를 복사 .htaccess하십시오.
테이블에서 쓸모없는 항목을 제거하십시오 users. phpMyAdmin 또는 Adminer와 같은 도구에서 follow sql 문을 사용하십시오.
`ALTER TABLE `wp_users` DROP `spam`, DROP `deleted`;`다음 테이블을 삭제할 수 있습니다.
( wp_데이터베이스 접두사로 변경 )
이제 네트워크의 다른 블로그의 마지막 테이블 만 있습니다. 이 컨텐츠도 사용하려면 워드 프레스를 통해 XML로 내보내기 전에이 파일을 내보내고 새로 설치 한 단일 설치로 가져 오십시오.
실제로 가능하고 상당히 쉽습니다. 나는 그것을 여러 번 스스로 해왔다.
고려해야 할 사항이 있습니다.
wp-config에서 다중 사이트 define (?)을 주석 처리하고 영구 링크를 업데이트하면 사이트가 단일 사이트 / 기본 모드로 되돌아갑니다. 그런 다음 데이터베이스를 정리하기 만하면됩니다.
어떤 이유로 든 wp-admin에 액세스하여 영구 링크를 업데이트 할 수없는 경우 단순히 .htaccess 파일을 삭제하십시오. 단일 사이트 모드에서 WordPress가 다시 작성합니다.
코드 / 지원 기사에 대한 링크를 찾아서 답변을 업데이트하기 위해 최선을 다하겠습니다.
지원 포럼 http://wordpress.org/support/topic/revert-to-single-site 의 한 항목에 대한 링크는 다음과 같습니다 .
여기의 기본 프로세스는 WP 3.5.1에서도 잘 작동합니다. 한 가지 설명 : 하위 사이트의 이름을 지정한 경우 해당 이름을 제거하기 위해 데이터베이스의 링크를 변경해야합니다. 내 하위 사이트의 이름이 mysite.com/comics 인 경우 위 절차를 수행 한 후 WP는 mysite.com/comics를 찾고 영구 링크에서 오류를 얻습니다. / comics 확장자를 찾아 WP-OPTIONS 테이블을 편집하고 제거하십시오. 또한 업로드 디렉토리가 올바른 위치를 가리키는 지 확인하십시오. 여전히 blogs.dir 항목이 표시 될 수 있으며 대신 wp-content / uploads /를 가리켜 야합니다.