0

我今天有点疯狂,因为我一直在努力几周来让我的网站完全正常运行。

我有大约 500 个帖子,标题为“XXXXXX 的最佳酒店优惠”,并且我在表中的每个 post_content 行中都有一个模板。

模板里面有像[keyword]这样的词,我想用标题中的“XXX”替换“[keyword]”。

这可能吗?

因此,例如:

"post_title = 伦敦最佳酒店优惠"

post_content = 我们在 [keyword] 有最好的酒店优惠"

我想用伦敦替换 [关键字]。”在 post_content 中。

对于我想受到影响的某些帖子,我也有一些搜索条件,它们如下:

SELECT *

来自“最佳酒店优惠百分比”和“wp_posts 草稿”之类的地方post_titlepost_status

有什么建议么?

4

3 回答 3

0
  • 首先,您需要使用php 正则表达式从 post_title 中提取 title 关键字,如果 title 关键字到达行尾,则使用 ' /best hotel deal in (.+?)$/i ' 之类的模式。

  • 然后,您使用 php str_replace将 [keyword] 替换为您在第一步中找到的关键字

至于您的搜索条件问题,我不明白您的问题,请详细说明。

于 2013-11-02T00:06:00.747 回答
0

您可以像这样对 SQL 中的单个关键字进行更新:

update
    wp_posts
set
    post_content = 
        concat(
            substr(post_content, 1, instr(post_content, '[Keyword]') - 1),
            substr(post_title, instr(post_title, 'Best hotel deals in ') + 20),
            substr(post_content, instr(post_content, '[Keyword]') + 9)
        )
where
    post_title like 'best hotel deals in%' and
    post_status = 'draft' and
    post_content like '%\\[keyword\\]%'

但是请注意,如果您要处理多个关键字,这将很快变得混乱。您最好使用 WordPress 的内置模板工具或众多可用的 WordPress 插件之一,而不是直接在数据库中进行大量操作。方钉、圆孔等等。

于 2013-11-02T00:13:48.893 回答
0

我最终使用了这个:

    update wp_posts
set post_content = REPLACE(post_content,'[keyword]',trim(SUBSTR(post_title, 21))) 
where post_title like 'best hotel deals in%' and post_status = 'draft'`

像梦一样工作。

谢谢大家!

于 2013-11-04T16:17:41.777 回答