我不知道有什么插件专门针对这一点,WP中没有任何插件可以做到这一点,但用一点php实现并不太困难,即使是20k帖子也不应该太极端。根据您的服务器设置,您可能需要采取一些变通方法来确保连接保持活动状态,但基本思想是循环浏览所有帖子,检查它是否是正确的帖子(不是页面、修订、自定义post\\u类型等),然后对内容运行字符串替换,非常类似于您已有的代码。
这是未经测试的,例如:
$query = new WP_Query( array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\'
) );
foreach ( $query->posts as $edit_post ) {
$edit_post->post_content
wp_update_post( array(
\'ID\' => $edit_post->ID,
\'post_content\' => preg_replace( "/<img[^>]+\\>/i", "", $edit_post->post_content, 1 )
);
}
你可能想把它放在自己的插件中,用一些管理页面代码在安全的地方运行,希望你能明白。
WP-CLI 能够使用进行批量编辑search-replace 数据库字符串,可能用于执行类似的操作。
$ wp search-replace \'/<img[^>]+\\>/i\' \'\' wp_posts --regex