【问题标题】:Add Taxonomy to Wordpress posts in bulk if post title contains text如果帖子标题包含文本,则将分类法批量添加到 Wordpress 帖子
【发布时间】:2014-11-26 15:34:08
【问题描述】:

我想将分类学术语“迈克尔乔丹”添加到每篇已发布的帖子中,并且在帖子标题中的某处包含“迈克尔乔丹”文本。

我假设您应该能够通过使用 PHPMYADMIN 和正确查询的 MYSQL 注入来做到这一点。然而,Wordpess 的分类和术语数据库表对于我的 MYSQL 水平来说有点复杂。

我可以从 wp_posts 表中选择所有使用“迈克尔乔丹”一词的帖子。

SELECT * FROM `wp_posts` WHERE `post_title` LIKE '%Michael Jordan%'; 

我假设我会使用此结果中的帖子 ID 来确定要添加分类术语的帖子。

感谢您帮助形成正确的查询。

【问题讨论】:

    标签: mysql database wordpress phpmyadmin taxonomy


    【解决方案1】:

    首先,在继续之前备份您的数据库。

    1. 找到term_id 与您的术语“迈克尔乔丹”对应

    select * from wp_terms where name="Michael Jordan" ,应该会给你类似的输出

    | term_id | name           | slug           | term_group |
    +---------+----------------+----------------+------------+
    |      12 | Michael Jordan | michael-jordan |          0 |
    

    注意term_id(你的号码会不同)

    1. 然后是下面的查询

    INSERT INTO wp_term_relationships SELECT id,term_id_noted_on_step_1,0 FROM wp_posts WHERE post_title LIKE '%Michael Jordan%'

    如果您想使用 WordPress 路线,请查看wp_set_object_terms

    【讨论】:

    • 谢谢,您的查询似乎合乎逻辑,我的术语 ID 是 17,我试过:INSERT INTO wp_term_relationships SELECT id,17,0 FROM wp_posts WHERE post_title LIKE '%Michael Jordan%';我得到了这个错误:#1062 - 键 'PRIMARY' 的重复条目 '47-17' 。我相信这是因为我已经有一些附有分类的帖子。有什么想法吗?
    • 是的,没错。显示错误是因为某些帖子已经附加了该术语。在这种情况下,您可以尝试INSERT IGNORE INTO wp_term_relationships.........
    • 谢谢,我对 IGNORE 进行了研究,但是看起来 ON DUPLICATE KEY UPDATE 会更安全?所以插入 wp_terms_relationships.... WHERE .... ON DUPLICATE KEY UPDATE id =id;但是,这给出了错误: Unknown column 'id' in 'field list' 。我现在不确定是否应该尝试删除 id = id 或使用 IGNORE。你怎么看?
    • IGNORE 应该可以正常工作,如果它找到重复的键,它将不会插入该行。除了你有一个备份可以回退到:)
    • 再次感谢,尝试了 IGNORE,没有错误,但我得到了:MySQL 返回了一个空结果集(即零行)。 (查询耗时 0.0255 秒)
    猜你喜欢
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多