wp-config.php에 다음 옵션 추가:
define(’WP_POST_REVISIONS’, false);
기존에 저장된 내용 삭제
DELETE FROM wp_posts WHERE post_type = "revision";
mport MySQLdb db = MySQLdb.connect(db='suapapa_blog', user='blog_admin', passwd='******', host='localhost') c = db.cursor() c.execute('DELETE FROM wp_posts WHERE post_type = "revision"') c.execute('SELECT id FROM wp_posts') l = c.fetchall() postIDs = map(lambda x: x[0], l) c.execute('select meta_id, post_id from wp_postmeta') l_meta = c.fetchall() delete_candidates = [] for mid, pid in l_meta: if not pid in postIDs: delete_candidates.append(mid) print len(delete_candidates), '/', len(l_meta), delete_candidates for mid in delete_candidates: c.execute('DELETE FROM wp_postmeta WHERE meta_id=%d'%mid) print '.', db.commit()
저장된 번역은 다음과 같이 쌍으로 존재함.
select meta_id,post_id,meta_key from wp_postmeta; | 1338 | 421 | translations | | 1339 | 421 | searchsyn |
/home/suapapa/wp-content/plugins/wp-multilingual/multilingual.php
$str = serialize(array(base64_encode(serialize(unserialize(serialize($translation)))))); ... $GLOBALS['wpdb']->query( "INSERT INTO ".$GLOBALS['table_prefix']. "postmeta (post_id,meta_value,meta_key) VALUES ('".$item['ID']."', '".$str ."', 'translations')"); #알수없게 인코딩된 데이타 $GLOBALS['wpdb']->query( "INSERT INTO ".$GLOBALS['table_prefix']. "postmeta (post_id,meta_value,meta_key) VALUES ('".$item['ID']."', \ '".WP_Multilingual::SafeVar(serialize(unserialize(serialize($translation))))."', 'searchsyn')"); #한글토막들 (regex 패턴?)
translation 데이타는 아래와 같이 찾아서 복원함.
$translations = unserialize($item['meta_value']); $translations = unserialize(base64_decode($translations[0]));