mysql 无法通过SQL更新WP帖子标题和slug

qij5mzcb  于 12个月前  发布在  Mysql
关注(0)|答案(2)|浏览(131)

我尝试在WordPress的post_title和post_name(slug)中替换2023到2024,如下所示:

UPDATE `wp_posts`
SET post_title = REPLACE(post_title, '(2023)', '(2024)'), post_name = REPLACE(post_name, '-2023', '-2024')
WHERE (post_title LIKE '%(2023)%') and (post_type = 'post');

字符串
然而,执行查询后,虽然表中的数据发生了变化,但在WP Jmeter 板中,帖子的标题和slug没有变化。为什么?
我已尝试清除该高速缓存,但不起作用。
更新:
最后,我使用WP Migrate的find & replace功能将所有WP表中的所有“(2023)”替换为“(2024)”,并且它可以工作。

os8fio9y

os8fio9y1#

对我很有效

UPDATE `wp_posts` SET post_title = REPLACE(post_title, '2024', '2025'),post_name = REPLACE(post_name, '2024', '2025') WHERE post_type = 'post' AND (post_title LIKE '%2024%' OR post_name LIKE '%2024%');

字符串
此查询应该将post_title和post_name列中所有出现的'2023'替换为'2024'。LIKE条件中的%允许在标题或slug中的任何位置匹配'2023'。
我建议在$wpdb->posts中使用全局$wpdb对象,而不是直接引用wp_posts

bttbmeg0

bttbmeg02#

如果您没有在WordPress中禁用修订,您还必须在查询中包含“修订”post_type:

... AND ( post_type = 'post' OR post_type = 'revision' );

字符串

相关问题