批量替换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 '没有文章';
}
© 版权声明
THE END
喜欢就支持一下吧
点赞9赞赏
分享
评论 抢沙发

请登录后发表评论