위의 줄에는 아무런 문제가 없다고 생각됩니다.
데이터베이스 변환 표 드루팔 6.x의 테이블 (들) 워드 프레스 2.9 배 상당 term_data, term_hierarchy wp_terms 노드, node_revisions의`의 wp_posts term_node이 코멘트 wp_comments
을 wp_term_relationships : 그래서 당신은 모든 코드를 검사해야
WordPress 테이블을 자르십시오
먼저 신선한 슬레이트로 작업 할 수 있도록 현재 특정 워드 프레스 테이블에있는 데이터를 제거해야했습니다.
참고 : 기본적으로 wordpress를 설치하면 모든 테이블의 접두어가 wp_로 변경됩니다. wp_ 이외의 다른 것을 사용하면 아래 쿼리를 수정해야합니다.
TRUNCATE TABLE wp_comments;
TRUNCATE TABLE wp_postmeta;
TRUNCATE TABLE wp_posts;
TRUNCATE TABLE wp_term_relationships;
TRUNCATE TABLE wp_term_taxonomy;
TRUNCATE TABLE wp_terms;
가져 오기 분류 약관
에게 쿼리의 다음 세트는 분류 용어를 가져옵니다.
주 : drupal이있는 테이블 이름. drupal 데이터베이스의 실제 이름이어야합니다. 이 이름을 drupal 데이터베이스의 이름으로 변경해야합니다.
INSERT INTO wp_terms (term_id, name, slug, term_group)
SELECT d.tid, d.name, REPLACE(LOWER(d.name), ' ', '-'), 0
FROM drupal.term_data d
INNER JOIN drupal.term_hierarchy h
USING(tid);
기본적으로 WordPress에는 여러 택 소노 미티 유형이 있습니다. 카테고리, post_tag 및 link_category. 내 Drupal 인스턴스에서 주로 태그로 분류를 사용했지만 다른 필요가있을 수 있습니다. 사용자 정의 포스트
Categories: category
Link Categories: link_category
Post Tags: post_tag
INSERT INTO wp_term_taxonomy (term_taxonomy_id, term_id, taxonomy,
description, parent)
SELECT d.tid, d.tid, 'post_tag', d.description, h.parent
FROM drupal.term_data d
INNER JOIN drupal.term_hierarchy h
USING(tid);
가져 오기 포스트 내용
드루팔은 잠시 워드 프레스 2.9 배의로, 사용자 정의 포스트 유형을 허용 : 당신은 당신이 분류법은 수입하려는 방법에 따라 아래 쿼리에서 3 번째 줄을 수정해야 할 수도 있습니다 유형은 플러그인을 통해서만 사용할 수 있습니다. 아래의 쿼리를 수정하지 않고 사용할 수 있으며 모든 스토리를 게시물로 변환하고 나머지는 그대로 전송합니다. 추가 게시물 유형을 변환해야하는 경우 케이스 문을 추가 할 수 있습니다.
예 : '책'THEN '포스트'나는 또한 쿼리를 조정
그래서 'post_date_gmt가'-6의 오프셋 (offset) 내 GMT에 따라 제대로 설치 것이라고 : 00 (중부 표준시). 다른 시간대에있는 경우 FROM_UNIXTIME (created + 21600)을 조정하여 위치를 기반으로 올바르게 빼거나 추가해야합니다.
INSERT INTO
wp_posts (id, post_date, post_date_gmt, post_content, post_title,
post_excerpt, post_name, post_type, post_modified)
SELECT DISTINCT
n.nid, FROM_UNIXTIME(created),
FROM_UNIXTIME(created+21600), body, n.title, teaser, LOWER(n.title),
(CASE n.TYPE
WHEN 'story' THEN 'post'
ELSE n.TYPE
END) AS TYPE,
FROM_UNIXTIME(changed)
FROM drupal.node n, drupal.node_revisions r
WHERE n.vid = r.vid;
가져 오기 포스트 및 분류 관계
INSERT INTO wp_term_relationships (object_id, term_taxonomy_id)
SELECT nid, tid FROM drupal.term_node;
Category Count Updating
UPDATE wp_term_taxonomy tt
SET COUNT = (
SELECT COUNT(tr.object_id)
FROM wp_term_relationships tr
WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
);
가져 오기
INSERT INTO wp_comments (comment_post_ID, comment_date,
comment_content, comment_parent, comment_author,
comment_author_email, comment_author_url, comment_approved)
SELECT nid, FROM_UNIXTIME(TIMESTAMP), comment, thread,
name, mail, homepage, STATUS
FROM drupal.comments;
업데이트 댓글 수
UPDATE wp_posts
SET comment_count = (SELECT COUNT(comment_post_id)
FROM wp_comments
WHERE wp_posts.id = wp_comments.comment_post_id);
업데이트 후 굼벵이
댓글
드루팔 (Drupal의 URL 별명은 워드 프레스의 퍼머 링크와 동일합니다. 드루팔 (Drupal은 WordPress보다 훨씬 더 공격적인 타이틀 위생을합니다. WordPress로 이전 할 때 SEO 이유로 인해 내 제목을 동일하게 유지할 수있는 기능이 필요했습니다.
내 오래된 타이틀을 유지하려면 Drupal과 유사한 규칙을 사용하여 WordPress의 타이틀 위생에 연결해야합니다. 아래의 코드는 현재 테마의 functions.php 파일의 어딘가에 위치해야합니다.
add_filter('sanitize_title', 'my_sanitize_title');
function my_sanitize_title($title) {
$title = preg_replace('/\b(a|an|as|at|before|but|by|for|from|is|in|into|like|of|off|on|onto|per|since|than|the|this|that|to|up|via|with)\b/i', '', $title);
$title = preg_replace('/-+/', '-', $title);
$title = trim($title, '-');
return $title;
}
당신은 당신의 주요 워드 프레스 디렉토리에있는 파일 즉 "수정-slugs.php"에 아래의 코드를 저장하고 브라우저를 통해 실행해야합니다.
< ?php
require_once('wp-load.php');
$posts = $wpdb->get_results(
"SELECT ID, post_title, post_name FROM $wpdb->posts"
);
$count = 0;
$ignored = 0;
$errors = 0;
foreach($posts as $post) {
if(strcmp($slug = sanitize_title($post->post_title), $post->post_name) !== 0) {
$wpdb->show_errors();
if(($result = $wpdb->query("UPDATE $wpdb->posts SET post_name='$slug' WHERE ID=$post->ID")) === false) {
$errors++;
} elseif($result === 0) {
$ignore++;
} else {
$count++;
}
} else {
$ignored++;
}
}
echo "<strong>$count post slug(s) sanitized.</strong><br />";
echo "$ignored post(s) ignored.<br />";
echo "$errors error(s).<br />";
이 튜토리얼과 함께 다음된다면, 난이 문제로 실행할 때 참고 자료로 워드 프레스 데이터베이스 기술을 사용하여 내 드루팔 설치에 따라 몇 가지 변경했습니다. Drupal의 인터페이스를 통해 이미지를 업로드했지만 위의 쿼리를 통해 Drupal에서 WordPress로 내 데이터를 성공적으로 마이그레이션 할 수 있다면 추가 단계가 완료되어야합니다.