批量替换B2主题视频封面地址的代码

批量替换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 '没有文章';
}

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

B2主题侧边栏添加功能

2021-4-5 16:29:15

WordPress教程

b2主题美化之添加视差背景图

2021-5-26 18:46:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索