调整大小时保留图像的原始名称

时间:2015-07-18 作者:gurung

我需要调整上载目录中一些现有图像的大小,以便使用wp\\u get\\u image\\u编辑器进行一些测试。请检查下面的示例代码。

$img = wp_get_image_editor( ABSPATH.\'test/flower.jpg\' );
if ( ! is_wp_error( $img )) {
    $img->resize( 800, NULL, false ); //resize to max-width of 800px.
    $filename = $img->generate_filename( \'custom-suffix-string\', NULL, \'jpg\');
    $saved = $img->save($filename);

    //information returned by $saved
    echo "Filename: ".$saved[\'file\']."<br>";
    }
如您所见,我可以在代码的第4行添加一个自定义后缀。因此,我调整大小的文件的名称将是flower-custom-suffix-string.jpg. 问题是我需要它作为NULL返回。

如果我使用generate_filename( NULL, NULL, \'jpg\'); 回显结果为Filename: flower-800x667.jpg. 因此,基本上,我试图将调整大小的图像的名称flower.jpg 与原始版本相同,并删除-800x667 从名称。如果该过程覆盖/删除原始文件,则不会出现问题。有什么建议或其他方法来实现这一点吗?TIA。

<小时>UPDATE : 我最终使用了下面的代码。谢谢你的提示@Zakir

$filename = $img->generate_filename( \'temp\', NULL, NULL);
$new_name = str_replace(\'-temp\', \'\', $filename);
$resized_img = $img->save($new_name);

1 个回复
最合适的回答,由SO网友:Zak 整理而成

您可以简单地使用preg_replace() 要删除的函数-800x667 (或任何高度)。像这样-

$image = generate_filename( NULL, NULL, \'jpg\');
echo preg_replace( \'/-800x[0-9]{2,4}/\', \'\', $image );

结束

相关推荐

Replace all media (images)

我为我的Wordpress网站创建了一个新主题,我需要替换网站上的所有媒体(图像),因为我使用的是所有新的图像大小(比我当前网站上最大的图像大小还要大)。98%的图像将使用相同的名称。每个帖子只包含一个(特色)图像,并且帖子的内容区域中没有图像,因此这使工作稍微容易一些。我想知道做这件事最好(最干净)的方法是什么。我考虑了以下因素:使用Wordpress plugin手动删除我所有帖子中的特色图像,删除它们,然后手动添加新图像删除我上传文件夹中的所有媒体,并将其替换为新图像,然后通过以下方式重新生成图像大