批量替换B2主题视频封面地址的代码
B2顶部视频列表中的数据是以序列化数组的方式保存在 post_meta 里面。如果直接从 mysql 里面批量替换数据,一定会错误。
正确的方法是使用php 导出->修改->再导入。
下面是一个批量替换视频封面网址某个字符串的代码,视频地址或者其他视频数据的修改方法类似,可以根据自己需求修改。
文件里面有这代码的使用方法和注意事项。
//批量替换视频封面网址中的某个字符。 //如果文章比较多,请将PHP的内存和超时时间改大点。 //一定要先备份你的数据库:从phpmyadmin或者其他数据库软件中导出网站的 .sql 文件。或者通过宝塔自带的数据库备份工具备份。切勿使用wp后台的导出工具导出。 //此代码放到 pages/test.php 文件最后面保存,然后管理员登陆WP后台,访问你的域名+/test ,等他执行完毕,执行完毕检查是否替换完成,如果替换完成删掉此代码。 $arg = array( 'post_type'=>'post',//文章形式是post 'post_status'=>'publish',//文章状态是已发布 'posts_per_page'=>-1 ); $the_query = new WP_Query($arg); if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) { $the_query->the_post(); $id = get_the_id(); //获取视频数据 $videos = get_post_meta($id,'b2_single_post_video_group',true); if(!$videos || empty($videos)) continue; //批量替换 foreach ($videos as $k => $v) { //请根据自己的需求修改此处代码 $videos[$k]['poster'] = str_replace(array('/01_','/02_','/03_','/04_','/05_','/06_','/07_','/08_','/09_','/10_','/11_'),array('/','/','/','/','/','/','/','/','/','/','/'),$videos[$k]['poster']); } //保存新的数据 update_post_meta($id,'b2_single_post_video_group',$videos); } wp_reset_postdata(); } else { echo '没有文章'; }
可以的