기본 블로그가있는 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_MULTISITE
wp-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 /를 가리켜 야합니다.