2013-11-24 32 views
2

我希望在主要网站上查找并替换某个关键字。限制搜索并替换为类别

我通常会使用类似

UPDATE wp_posts 
    SET post_content = REPLACE (post_content, 'Item to replace here', 'Replacement text here'); 

不过,我不希望更新是在整个网站,我希望把它限制在只有一个类别。

谁能告诉我如何做到这一点?

回答

4

UPDATE:为了更精确的查询应该

UPDATE wp_term_relationships r JOIN wp_posts p 
    ON r.object_id = p.id JOIN wp_terms t 
    ON r.term_taxonomy_id = t.term_id JOIN wp_term_taxonomy x 
    ON r.term_taxonomy_id = x.term_taxonomy_id 
    SET p.post_content = REPLACE(post_content, 'Item to replace here', 'Replacement text here') 
WHERE t.name = 'My Category' 
    AND x.taxonomy = 'category' 
    AND x.parent = 0 -- top level category 

注:之前更新任何内容:

1),您可以检查哪些职位将通过发行

影响
SELECT * 
    FROM wp_term_relationships r JOIN wp_posts p 
    ON r.object_id = p.id JOIN wp_terms t 
    ON r.term_taxonomy_id = t.term_id JOIN wp_term_taxonomy x 
    ON r.term_taxonomy_id = x.term_taxonomy_id 
WHERE t.name = 'My Category' 
    AND x.taxonomy = 'category' 
    AND x.parent = 0 -- top level category 

2)确保你有坚实的备份你的wordpress数据库。

+0

完美的作品彼得。非常感谢你。 – Shakey

+0

彼得,如果类别是一个子类别,它将会如何改变? 我试着运行这个,但是一旦查询运行,它只显示上面一个类别的详细信息。 – Shakey

+0

@Shakey你有没有机会拥有多个具有相同名称但不同父类别的子类别? – peterm