从bash重新生成Wordpress缩略图
在更改设置>媒体>缩略图大小后,是否有一种简单的方法可以重新生成图像缩略图 我知道有这个插件,但我有超过30k的图像。即使是ajax版本也需要很长时间才能完成 我在VPS CentOS上,所以我可以运行iconv、ffmpegthumbs等,那么有没有办法让我从bash完成这项任务 更新1。 这是我为自己写的剧本。我需要在包含图像的文件夹中运行它从bash重新生成Wordpress缩略图,wordpress,bash,thumbnails,Wordpress,Bash,Thumbnails,在更改设置>媒体>缩略图大小后,是否有一种简单的方法可以重新生成图像缩略图 我知道有这个插件,但我有超过30k的图像。即使是ajax版本也需要很长时间才能完成 我在VPS CentOS上,所以我可以运行iconv、ffmpegthumbs等,那么有没有办法让我从bash完成这项任务 更新1。 这是我为自己写的剧本。我需要在包含图像的文件夹中运行它 #! /bin/bash # Copyright Synvi Group (http://www.synvigroup.com) # Custom s
#! /bin/bash
# Copyright Synvi Group (http://www.synvigroup.com)
# Custom script to generate wordpress thumbnails for smokingd
# Dependencies: Imagemagick, rename, coreutils
echo Checking if sgthumbs already exists...
rm -rf sgthumb &
wait
echo Checking if list file already exists...
rm -f list &
wait
echo Generate list of files...
ls -1 --file-type | grep -v -e -[0-9][0-9][0-9]x[0-9][0-9][0-9] | grep -v -e -[0-9][0-9][0-9][0-9]x[0-9][0-9][0-9] | grep -v -e -[0-9][0-9][0-9]x[0-9][0-9][0-9][0-9] | grep -v -e -[0-9][0-9][0-9][0-9]x[0-9][0-9][0-9][0-9] | grep -v -e -[0-9][0-9][0-9]x[0-9][0-9] | grep -v -e -[0-9][0-9]x[0-9][0-9][0-9] | grep -v -e -[0-9][0-9]x[0-9][0-9] > list &
wait
echo Create sgthumb directory...
mkdir sgthumb &
wait
echo Copying files...
xargs -a list cp -t sgthumb/ &
wait
cd sgthumb
echo Generating thumbnails...
echo Processing jpg files..
mogrify -resize '610x200^' -gravity center -crop 610x200+0+0 +repage *.jpg &
wait
echo Processing png files..
mogrify -resize '610x200^' -gravity center -crop 610x200+0+0 +repage *.png &
wait
echo Appending the new size to filenames...
rename .jpg -610x200.jpg *.jpg &
wait
rename .png -610x200.png *.png &
wait
echo Fixing permissions...
chown smokingd:smokingd *
wait
chmod 777 *
wait
echo Moving thumbnails to main directory...
cp -p *.jpg ../
wait
cp -p *.png ../
wait
echo Cleaning up..
cd ..
wait
rm -rf sgthumb
wait
rm list
wait
echo Done!
其中USER是拥有文件的用户,权限是文件的正确权限
现在我需要更新数据库,以便旧帖子使用新的缩略图。
旧帖子使用150x150的缩略图,使用的缩略图在其名称后面附加了-150x150
更新2。
以下查询工作正常:
UPDATE wp_postmeta SET meta_value = REPLACE (
meta_value,
'-150x150.jpg";s:5:"width";s:3:"150";s:6:"height";s:3:"150";}',
'-610x200.jpg";s:5:"width";s:3:"610";s:6:"height";s:3:"200";}');
假设原始缩略图大小为150x150,新大小为610x200。请查看imagemagick 它附带了一个叫做convert的东西 转换$path/$file-调整x150大小-定义jpeg:extent=28kb$output/$file 所以 或 第1步。 对包含所有要备份的映像的现有文件夹进行Tar升级
tar -cvzf images-backup.tar.gz images
步骤2
mkdir /opt/image-test
cd /original/path/containing/images/
find . -type d -exec mkdir -p /opt/images/test/{} \;
以上是在新的图像测试文件夹中创建当前路径中存在的所有文件夹
#!/bin/bash
path="/path/to/current-images"
output="/opt/image-test/images"
for files in `find $path -name \*.\* -print`
do
convert $path/$file -resize x150 -define jpeg:extent=28kb $output/$file
done
我还没有对此进行测试,但您将图像解压到/opt/images,然后使用原始源进行图像转换的原因是,我假设图像也都在子文件夹中,这就是为什么解压会创建相同的目录结构,并且输出结果将被/opt/images backup/images中的文件覆盖缩略结果
您可能需要调整混乱,但应该可以正常工作看看imagemagick 它附带了一个叫做convert的东西 转换$path/$file-调整x150大小-定义jpeg:extent=28kb$output/$file 所以 或 第1步。 对包含所有要备份的映像的现有文件夹进行Tar升级
tar -cvzf images-backup.tar.gz images
步骤2
mkdir /opt/image-test
cd /original/path/containing/images/
find . -type d -exec mkdir -p /opt/images/test/{} \;
以上是在新的图像测试文件夹中创建当前路径中存在的所有文件夹
#!/bin/bash
path="/path/to/current-images"
output="/opt/image-test/images"
for files in `find $path -name \*.\* -print`
do
convert $path/$file -resize x150 -define jpeg:extent=28kb $output/$file
done
我还没有对此进行测试,但您将图像解压到/opt/images,然后使用原始源进行图像转换的原因是,我假设图像也都在子文件夹中,这就是为什么解压会创建相同的目录结构,并且输出结果将被/opt/images backup/images中的文件覆盖缩略结果
您可能需要调整混乱,但应该可以正常工作谢谢您的帮助。我最终做了一些类似的事情,但方式略有不同。我编辑了我的问题,把我写的剧本包括进去,如果有人想要的话。然而,我仍然不知道如何更新数据库中的所有帖子以使用新的缩略图。由于post_元表的结构方式,简单的搜索和替换不起作用。有什么办法可以解决这个问题吗?可以看看这个,问他们最好的地方,或者在这里问一个新的wordpress问题,特别是关于db结构的问题谢谢。我最终做了一些类似的事情,但方式略有不同。我编辑了我的问题,把我写的剧本包括进去,如果有人想要的话。然而,我仍然不知道如何更新数据库中的所有帖子以使用新的缩略图。由于post_元表的结构方式,简单的搜索和替换不起作用。有什么办法可以解决这个问题吗?可以看看这个,问他们的最好地方,或者在这里问一个新的wordpress问题,特别是关于db结构的问题