Rss Feed

嘉瑜的知性探索

2011年梦想主色调:书、茶、咖啡、红酒、运动、日记、音乐、自制美食、干净明亮的房间

WordPress的必备SQL语句

2009-12-29 by ,   Category: 网址及工具,   Tags:  No Comments  68次浏览  

1. Post类型只有4种:private publish draft inherit

2. 分类/tag与post相关的四张主表:
wp_term_taxonomy 命名表 category <->  term_taxonomy_id)   
字段:term_taxonomy_id    term_id    taxonomy    description    parent    count

wp_term_relationships  存放目录/tag与日志的对应关系数据
字段:object_id    term_taxonomy_id    term_order

wp_post  存放日志  
字段:post_author post_date    post_date_gmt    post_content    post_title    post_excerpt    post_status    comment_status    ping_status

wp_terms 存放目录/Tag
字段:term_id    name    slug    term_group    term_order

3. 建几个有用的视图:

-- 列出全部日志 --
create view v_post as
SELECT p.*, tax.term_taxonomy_id,tax.term_id,category.name, tax.count
FROM
wp_term_relationships relation,
wp_terms category,
wp_term_taxonomy tax,
wp_posts p
WHERE
category.term_id = tax.term_id and
tax.term_taxonomy_id = relation.term_taxonomy_id and
relation.object_id =  p.id 
--- 看每个分类下实际有多少日志(包含private) ---
alter view v_postCountByTerm as
SELECT count(1), tax.taxonomy, category.term_id,category.name
FROM
wp_term_relationships relation,
wp_terms category,
wp_term_taxonomy tax,
wp_posts p
WHERE
category.term_id = tax.term_id and
tax.term_taxonomy_id = relation.term_taxonomy_id and
relation.object_id =  p.id
group by  tax.taxonomy, category.term_id,category.name
order by category.name
-- 看每个目录下有多少私有日志 --
create view v_adminPost as
SELECT count(1), tax.taxonomy, category.term_id,category.name
FROM
wp_term_relationships relation,
wp_terms category,
wp_term_taxonomy tax,
wp_posts p
WHERE
p.post_status = 'private' and
category.term_id = tax.term_id and
tax.term_taxonomy_id = relation.term_taxonomy_id and
relation.object_id =  p.id
group by  tax.taxonomy, category.term_id,category.name
order by category.name
-- 查看某个目录下是否有私有日志 --
SELECT id
FROM  `v_postCountByTerm` c, v_post p
WHERE c.term_id = p.term_id
AND p.post_status =  'private'
AND c.term_id =27

4. 几个有用的SQL

-- 删除未使用过的TAG --
DELETE a,b,c
FROM wp_terms AS a
LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE c.taxonomy = 'post_tag' AND c.count = 0

-- 删除所有文章修订版本(Revisions)以及它们的Meta数据 --
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

-- 更改正文中的链接地址 --
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'www.旧网址.com', 'www.新网址.com');
UPDATE wp_postmeta
SET meta_value = REPLACE (meta_value, 'www.旧网址.com', 'www.新网址.com';
UPDATE wp_comments
SET comment_author_url = REPLACE( comment_author_url, '旧网址.com', '新网址.com' )
UPDATE wp_posts
SET guid = REPLACE (guid, 'www.旧网址.com', 'www.新网址.com')

--- 导出所有评论中的邮件地址 --
SELECT DISTINCT comment_author_email
FROM wp_comments

-- 删除所有的垃圾评论 --
DELETE FROM wp_comments
WHERE comment_approved = 'spam';
DELETE from wp_comments WHERE comment_approved = '0';

-- 更新正文内所有的’target=”_blank”‘为’rel=”nofollow”‘ --
UPDATE wp_posts
SET post_content = REPLACE (post_content, 'target="_blank',  'rel="nofollow')

-- 重置密码 --
UPDATE `wp_users` SET `user_pass` = MD5('PASSWORD') WHERE `wp_users`.`user_login` =`admin` LIMIT 1;


Tags:

Leave a Comment