- Published on
WordPressのMysqlテーブルを解析してみた
- Authors
- Name
- Shou Arisaka / 有坂翔
post_typeカラムについて
'revision'と'post'があります。 まぁ、リビジョンはバックアップみたいなもので、以前書いた状態に戻したい、なんてときに使う機能ですね。 リビジョンは基本的に不要なものなので、リビジョンを生成しないようにするプラグインもあるほどです。 よって、このpost_type
カラムはpost
であるのが基本。
select * from wp_posts where post_type='post';
それぞれのMysqlテーブルについての概要とか
# 全ての記事を表示する(リビジョンとかも含まれる。)
select * from wp_posts ;
# 全ての記事を表示する
select * from wp_posts where post_type='post' ;
# 500文字以下の投稿だけ表示する
select * from wp_posts where post_type='post' and char_length(post_content) < 500 ;
# データベースを切り替える。
use yuis_fuumin2 ;
use yuis_yuisorgblog ;
# 投稿 post/page ,other
select * from wp_posts ;
select * from wp_links ;
# index/follow ,other メタ情報色々
select * from wp_postmeta;
select * from wp_options;
select * from wp_usermeta;
select * from wp_users;
SELECT NOW();
# カテゴリ 及び タグ とスラッグを設定
select * from wp_terms;
# empty
select * from wp_termmeta;
# termsをカテゴリor タグor otherにわける ・ カテゴリディスクリプションを設定
select * from wp_term_taxonomy;
# object_id=post_id に対して term_taxonomy_id=term_id をここで追加
select * from wp_term_relationships;
desc wp_term_relationships;
# 投稿数を数える
select count(*) from wp_posts ;
# 正規表現で検索してselectする
select id,post_status,post_date,post_title,post_content from wp_posts where post_title REGEXP'.*Ruby.*';
# meta: nofollow/noindex
# and を使う。
# & でやると悲惨なことになる
update wp_postmeta set meta_value='foo' where post_id='102' and meta_key='index';
update wp_postmeta set meta_value='foo' where post_id='102' & meta_key='index';
update wp_postmeta set meta_value='bar' where post_id='102' and meta_key='follow';
update wp_postmeta set meta_value='bar' where post_id='102' & meta_key='follow';
# 基本的なupdate
update wp_posts
set
post_author='1',
guid='',
post_title='title',
post_name='title',
post_content='content!!',
post_type='post',
#post_status='publish',
post_status='private',
post_date=NOW(),
post_date_gmt=NOW(),
post_modified=NOW(),
post_modified_gmt=NOW()
#where id=80;
where post_title REGEXP'title' ;
desc wp_posts ;
show ;
# other
SELECT '1+2' REGEXP '^1\\+2';