我们在wordpress网站发文章的时候,如果复制外部图片,包含链接,点击就跳转到外部图片了,不利于用户体验。

如果一个个图片去删除外链,就会非常繁琐。

可以通过代码批量删除

代码如下:



// 确保这段代码在WordPress环境中运行
defined('ABSPATH') or die('No script kiddies please!');
 
// 获取所有文章
$posts = get_posts(array(
    'numberposts' => -1,
    'post_type'   => 'post',
    'post_status' => 'any'
));
 
// 遍历文章
foreach ($posts as $post) {
    // 设置全局变量 $post 为当前文章
    setup_postdata($post);
 
    // 获取文章内容
    $content = get_the_content();
 
    // 使用正则表达式查找并替换所有图片链接
    $content = preg_replace('/<a .*?href="([^"]*\.(png|jpg|jpeg|gif|bmp))".*?<\/a>/i', '<img src="$1" alt="" />', $content);
 
    // 更新文章内容
    $updated = wp_update_post(array(
        'ID'           => $post->ID,
        'post_content' => $content
    ));
 
    // 输出结果
    if($updated) {
        echo "文章 {$post->ID} 已更新。\n";
    } else {
        echo "文章 {$post->ID} 更新失败。\n";
    }
}
 
// 清除当前文章
wp_reset_postdata();

可以复制到wordpress主题函数 function.php中,运行一次

就可以自动删除图片中的外链,非常方便。