搜索和替换所有帖子中的文本

时间:2010-12-06 作者:GPX

我在WP中使用ZD视频插件已经很长时间了,现在,自从我迁移到WP 3.0.2后,它就不再工作了。要使用插件嵌入YouTube视频,我只需编写

youtube视频的url

现在我需要回到普通的YouTube嵌入。如何编写MySQL查询来搜索[zdvideo]*[zdvideo] 并将其替换为*?

4 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

这两个问题如何?

UPDATE wp_posts SET post_content = REPLACE(post_content, \'[zdvideo]\', \'\');
UPDATE wp_posts SET post_content = REPLACE(post_content, \'[/zdvideo]\', \'\');

SO网友:Denis de Bernardy

据我所知,MySQL没有太多的regexp替换功能——更不用说它非常笨拙的regexp语法了。因此,这在php级别上是最容易做到的。首先获取所有具有短代码的帖子:

$posts = $wpdb->get_results("
SELECT ID, post_content
FROM $wpdb->posts
WHERE post_content LIKE \'%[zdvideo]%\'
");
然后循环查看结果:

foreach ($posts as $post) {
  $post->post_content = preg_replace(
    "/\\\\[zdvideo\\\\](.+?)\\\\[\\\\/zdvideo\\\\]/",
    "$1", # $1 holds the url... format as needed
    $post->post_content);

  # Be sure to verify on a few posts before actually saving...
  # var_dump($post->post_content);

  $wpdb->query("
  UPDATE $wdpb->posts
  SET post_content = \'" . $wpdb->escape($post->post_content) . "\'
  WHERE ID = " . intval($post->ID)
  );
}

SO网友:bueltge

或者使用插件Search & Replace, 使WP内部的sql易于使用;使用like语句并为您提供一个gui,用于在内容和其他表中搜索/替换字符串。

SO网友:freedev

试试看wp search-replace.

搜索选定表中的所有行,并用第二个字符串替换第一个字符串的参数。

WP-CLI 是WordPress的命令行界面。您可以更新插件、配置多站点安装等,而无需使用web浏览器。

结束

相关推荐

如何根据$wp_Query持久化修改评论内容?

对于插件,我需要构建自己的早期帖子内容和评论内容过滤器。发布内容/文本更改工作,即修改最终在客户端浏览器中完成。但我的评论内容/文本修改在某种程度上并不持久,即客户端接收到原始评论文本。时间点I“;“挂钩”;由定义template_redirect 钩然后我执行如下操作:global $wp_query; // Iterate over all posts in this query. foreach ($wp_query->posts as $post) {