批量删除WordPress文章的非图片内容,即只保留文章中的图片,删除非图片内容

近期有个网站的文字描述需要大换血,但是图片不想删,毕竟图片都是精选的,步入正题,借助大佬的指导如下方式来实现

在主题function.php文件中添加以下代码,添加之后保存文件,然后刷新网站,等待加载,然后就好了,注意使用此代码前!备份数据库!。

$args = array(  
            'post_type' => 'post',  
            'posts_per_page' => -1, 
            'fields' => 'ids'
        );  

$posts = get_posts($args);  
     foreach($posts as $id){
    
        // 获取文章的分类ID
        $post_categories = wp_get_post_categories($id);
        $target_category_id = 59; // 替换为你的特定分类ID
    
        // 检查文章是否属于特定分类
        if (in_array($target_category_id, $post_categories)) {
            // 获取文章内容
            $post_content = get_post_field('post_content', $id);
    
            // 使用正则表达式匹配所有的<img>标签
            $pattern = '/<img[^>]+>/';
            preg_match_all($pattern, $post_content, $matches);
    
            // 将匹配到的图片标签拼接成字符串
            $images_content = implode('', $matches[0]);
    
            // 更新文章内容为保留的图片内容,并保留原有的空行
            wp_update_post(array('ID' => $id, 'post_content' => $images_content));
        }
    }

逻辑是:

1. 获取全部文章ID 为数组
2.循环每个ID
3.判断这个ID的文章是不是59分类的
4.如果是 获取当前ID的文章
5.过滤出图片 保存到 某个变量
6然后把这个变量的信息转成图片格式 保存给当前ID文章。

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

TimThumb.php 图像剪裁文件支持webp剪裁功能

2024-1-19 23:18:23

小知识

腾讯云服务器ddos防御

2023-7-31 11:19:25

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