我今天有点横冲直撞,因为我一直试图让我的网站完全正常工作几周。
我有500个帖子左右标题为“XXXXX中的最佳酒店优惠”,我在表格的每个post_content行中都有一个模板。
模板内部是[关键字]等字词,我想从标题中将“[keyword]”替换为“XXX”。
这可能吗?
所以,例如:
“post_title =伦敦最佳酒店优惠”
post_content =我们在[keyword]“
中提供最优惠的酒店优惠我想用伦敦替换[关键字]。“在post_content中。
对于我想要受影响的特定帖子,我也有一些搜索条件,它们如下:
SELECT *
FROM wp_posts
在post_title
LIKE'最佳酒店优惠'%'
和post_status
LIKE'草稿'
有什么建议吗?
答案 0 :(得分:0)
首先,您需要使用php regex从post_title中提取title标题,其中的模式类似于“ /最佳酒店优惠(。+?)$ / i ”使用$如果title关键字到达行尾。
然后,您使用php str_replace将[keyword]替换为您在第一步中找到的关键字
至于您的搜索条件问题,我不明白您的问题,请详细说明。
答案 1 :(得分: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插件之一,而不是直接在数据库中进行大量操作,你会好得多。方形钉,圆孔,以及所有这些。
答案 2 :(得分: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'`
像梦一样工作。
谢谢大家!