User Tools

Site Tools


wordpress

disable revision & delete existing revision from db

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()

다국어 지원

wp_multilingual

저장된 번역은 다음과 같이 쌍으로 존재함.

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]));

themes

references

wordpress.txt · Last modified: 2013/08/03 05:04 by 127.0.0.1