Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从bash重新生成Wordpress缩略图_Wordpress_Bash_Thumbnails - Fatal编程技术网

从bash重新生成Wordpress缩略图

从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

在更改设置>媒体>缩略图大小后,是否有一种简单的方法可以重新生成图像缩略图

我知道有这个插件,但我有超过30k的图像。即使是ajax版本也需要很长时间才能完成

我在VPS CentOS上,所以我可以运行iconv、ffmpegthumbs等,那么有没有办法让我从bash完成这项任务

更新1。

这是我为自己写的剧本。我需要在包含图像的文件夹中运行它

#! /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结构的问题