如何从Wordpress中删除所有旧图像

时间:2017-03-03 15:33:06

标签: php wordpress

由于图片版权问题,我想从我的Wordpress网站删除2012年至2015年7月的所有图片。并且我还希望在删除图像后保留所有文章或页面没有损坏的图像链接。如果我手动删除一个图像(所有缩略图版本),那么它在文章的前端显示断开的图像链接。

任何想法?

2 个答案:

答案 0 :(得分:0)

进入FTP,在主题中查找uploads文件夹,并相应地命名文件。

uploads/date...

您可以按月顺序查看已加载到WordPress中的所有图像,然后将其深入到日文件中。

答案 1 :(得分:0)

Wordpress在上传中有一个文件夹结构,您可以创建一个脚本来删除这些文件夹或文件,如下所示

function recursive_remove_directory($directory, $empty=FALSE)
{
    if(substr($directory,-1) == '/')
    {
        $directory = substr($directory,0,-1);
    }
    if(!file_exists($directory) || !is_dir($directory))
    {
        return FALSE;
    }elseif(is_readable($directory))
    {
        $handle = opendir($directory);
        while (FALSE !== ($item = readdir($handle)))
        {
            if($item != '.' && $item != '..')
            {
                $path = $directory.'/'.$item;
                if(is_dir($path)) 
                {
                    recursive_remove_directory($path);
                }else{
                    unlink($path);
                }
            }
        }
        closedir($handle);
        if($empty == FALSE)
        {
            if(!rmdir($directory))
            {
                return FALSE;
            }
        }
    }
    return TRUE;
}

你使用这个

recursive_remove_directory (WP_CONTENT_DIR.'/uploads/2012');
recursive_remove_directory (WP_CONTENT_DIR.'/uploads/2013');
recursive_remove_directory (WP_CONTENT_DIR.'/uploads/2014');
recursive_remove_directory (WP_CONTENT_DIR.'/uploads/2015/01');
recursive_remove_directory (WP_CONTENT_DIR.'/uploads/2015/02');
.....
recursive_remove_directory (WP_CONTENT_DIR.'/uploads/2015/06');

在你的functions.php文件中添加函数,然后占用WP_Query并获取2012年至2015年7月的所有帖子,删除内容的图像,如下所示:

$content = get_the_content ();
$content = preg_replace ("/ <img [^>] + \> / i", "", $ content);
$content = apply_filters ('the_content', $ content);
$content = str_replace (']>', ']]>', $ content);

并占用wp_update_post来更新内容,这将删除内容中的所有图片