【问题标题】:Unique slugs in Wordpress by MySQL queryMySQL 查询在 Wordpress 中的独特 slug
【发布时间】:2017-11-13 12:49:01
【问题描述】:

我想要一个 MySQL 查询来查找和替换 wordpress 数据库中的关键字。并希望保持蛞蝓独一无二。例如:如果wp_terms 表中有 3 个 slug:-

  1. testkeyword
  2. testkeyword-2
  3. testslg

现在我想用keyword 替换关键字slg 并运行更新查询

update wp_terms set `slug` = replace(slug, 'slg','keyword')

现在,testslg 的第三个 slug 将变为 testkeyword,并且它不会保持唯一,因为第一个 slug 与第三个相同。

如果列中已经存在数字,如何在 slug 末尾添加一个数字? 在这个例子中,我希望第三个 slug 是testkeyword-3。这怎么可能?

【问题讨论】:

    标签: php mysql wordpress slug


    【解决方案1】:

    在开始时获取新形成的关键字的初始计数。假设您要使用以下语句替换您的第三个关键字,即 testlg 与 testkeyword

    $newkeyword = str_replace("slg","keyword","testslg");
    

    现在,使用以下查询获取此新关键字的计数

    SELECT count(slug) FROM wp_terms WHERE slug like '%$newkeyword%';
    

    在更新查询中使用此计数

    update wp_terms set `slug` = '$newkeyword-$above_query_count_result' WHERE row_unique_id;
    

    注意:此答案只是逻辑,请在您的 php 代码中包含所有连接。

    【讨论】:

    • 嗨,感谢您的回答,但在我的示例中,“testslg”是数据库中的内容,查询将只有要查找的关键字(slg)和要替换的关键字(关键字)。所以我认为不可能使用这个 str_replace("slg","keyword","testslg");
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2011-04-21
    • 1970-01-01
    • 2015-02-26
    • 2013-02-05
    • 2020-03-14
    • 1970-01-01
    相关资源
    最近更新 更多