如何为我的Wordpress网站设置(WP +插件+主题)创建bash安装脚本?


9

我使用Wordpress建立了许多网站,而我的初始设置基本上总是相同的:

  • 最新版本的WP
  • 大约5个插件的最新版本
  • 我赤裸裸的发展主题

与其单独下载/上传这些东西,而不是每次我开始一个新项目时都手动完成,我想创建一个可以执行以下操作的bash脚本:

  • 下载最新版本的Wordpress
  • 解压缩
  • 下载最新版本的插件X
  • 解压缩到WP插件文件夹
  • 下载我的裸体主题
  • 解压缩到主题文件夹

现在下载最新的WP很容易(http://wordpress.org/latest.tar.gz),也下载了我的裸主题,但是我在获取最新版本的插件方面遇到了麻烦,因为它们不被称为,latest.tar.gz但具体而言版本名称(例如:wptouch.1.9.26.zip)

编辑:所以我现在想知道是否有可能在我的bash脚本中使用cURL来查找当前版本插件的确切URL。想法是先获取页面,然后href在后面的段落中找到的值<h3>Current Version</h3>

这是一个示例,WP上的所有插件下载页面都是这样的:

<h3>Current Version</h3>
<p class="unmarked-list">
    <a href="http://downloads.wordpress.org/plugin/jetpack.1.1.2.zip">1.1.2</a>
</p>

Answers:


4

要始终获取最新的插件,请以我的插件为例:

http://wordpress.org/extend/plugins/wordpress-file-monitor-plus/

最新的下载链接为:

http://downloads.wordpress.org/plugin/wordpress-file-monitor-plus.1.1.zip

但是,如果您从下载链接中删除该版本,则始终会得到最新版本:

http://downloads.wordpress.org/plugin/wordpress-file-monitor-plus.zip

编辑:您是否考虑过将最新的wordpress和插件的文件夹解压缩?然后,一旦出现新的插件或wordpress,您只需将其解压缩即可。然后,您的bash脚本仅打包全部内容以供安装使用。


1
该死,这很容易,谢谢。现在我不再使用bash脚本了,我希望可以将一些东西放在一起。我将结果发布在这里。
mike23 2011年

但是,在您的示例wordpress-file-monitor-plus.zip中,有一个问题在“开发版本”下列出,与最新的稳定版本不同,是吗?
mike23

哦,我明白了。这可能不是最新版本...可能是当前行李箱中的最新版本。抱歉,我可能想念您。
斯科特,

2
我会在这里使用SVN。还有,你可以检出/从每个插件的最高数量,或只是后备箱导出标签。这同样适用于WordPress的核心
rofflox

1
您不可以打开http://plugins.svn.wordpress.org/plugin-name/trunk/readme.txt,解析Stable Tag: X行然后下载http://downloads.wordpress.org/plugin/plugin-name.X.zip吗?
伊恩·邓恩

1

创建bash脚本:

touch wp_plugins_theme.sh

使可执行文件:

chmod +x ./wp_plugins_theme.sh

复制到它:

#!/bin/bash
#
#  This script is to automate a common WP setup.
#
#   - Download the latest version of Wordpress
#   - Unzip
#   - Download the latest version of plugin X
#   - Unzip to WP plugins folder
#   - Download theme
#   - Unzip to themes folder

: ' Define Directory
'

# Change to your directory name
# Final site will be $PWD/$dirname/www/

dirname=ExampleWPPluginsTheme

# WordPress Directories used later

plugins=$PWD/$dirname/www/wp-content/plugins
themes=$PWD/$dirname/www/wp-content/themes

: ' Clear Example Dir
'

rm -rf $PWD/$dirname
mkdir -p $PWD/$dirname/www
cd $PWD/$dirname;

: ' Download the latest version of Wordpress
'

curl -OL "https://wordpress.org/latest.tar.gz"

: ' Unzip
'

tar -zxvf "./latest.tar.gz" -C 'www' --strip-components=1

: ' Download the latest version of plugin X
'

curl -OL "https://downloads.wordpress.org/plugin/query-monitor.latest-stable.zip"
curl -OL "https://downloads.wordpress.org/plugin/wp-optimize.latest-stable.zip"

: ' Unzip to WP plugins folder
'

tar -zxvf "./query-monitor.latest-stable.zip" -C $plugins
tar -zxvf "./wp-optimize.latest-stable.zip" -C $plugins

: ' Download theme
'

curl -OL "https://github.com/Automattic/_s/archive/master.zip"

: ' Unzip to themes folder
'

tar -zxvf "./master.zip" -C $themes

: ' Done
'

# List the folder contents

ls -la $PWD

运行命令

./wp_plugins_theme.sh

我知道这现在已经很老了,但是它是最接近正确答案的答案,应该就是https://downloads.wordpress.org/plugin/plugin-name.latest-stable.zip
大锤(Sledge Hammer)

0

我创建了一个bash脚本来按照他们的建议使用Subversion更新Wordpress 。

#!/bin/bash
# usage: upgrade_wordpress.sh X.X.X
# http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion

# http://stackoverflow.com/a/699613/327074
die () {
    echo >&2 "$@"
    exit 1
}

# check that there is one argument
[ "$#" -eq 1 ] || die "usage: upgrade_wordpress.sh X.X.X"
# http://stackoverflow.com/a/2220646/327074
response=$(curl --write-out %{http_code} --silent --output /dev/null http://core.svn.wordpress.org/tags/$1/)
# check that the tag repository exists, i.e. returns a HTTP 200 status code
[ "$response" -eq 200 ] || die "Couldn't find Wordpress version, http error: $response"
# Take a backup
mysqldump -u root -p wordpress > wordpress_upgrade_to_$1_bak.sql
# Updating to a New Stable Version
cd /path/to/wordpress/dir/
svn sw http://core.svn.wordpress.org/tags/$1/ .

我已经对此进行了修改以进行安装。第二个脚本未经测试,但可以帮助您入门。您将需要编写自己的create_wordpress_database_and_user.sql-但是无论如何您都没有要求输入该内容,因此也许可以忽略它。

#!/bin/bash
# usage: install_wordpress.sh X.X.X /path/to/wordpress/dir
# http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion

# http://stackoverflow.com/a/699613/327074
die () {
    echo >&2 "$@"
    exit 1
}
# check that there are two arguments
[ "$#" -eq 2 ] || die "usage: install_wordpress.sh X.X.X /path/to/wordpress/dir"
# http://stackoverflow.com/a/2220646/327074
response=$(curl --write-out %{http_code} --silent --output /dev/null http://core.svn.wordpress.org/tags/$1/)
# check that the tag repository exists, i.e. returns a HTTP 200 status code
[ "$response" -eq 200 ] || die "Could not find Wordpress version, http error: $response"
# create directory if needed
if [ ! -d $2 ]; then
    mkdir $2
fi
# Install the database
mysql -u root -p < create_wordpress_database_and_user.sql
# Checking out stable version
cd $2
svn co http://core.svn.wordpress.org/tags/$1/ .

0

我一直被git clone当作是一种可怜的人。

WordPress git每30分钟更新一次,因此我可以使用自己的插件/主题将其克隆到自己的存储库中,或者直接从中提取。

整个过程非常快,实际上只有两行,而我唯一需要手动做的就是创建本地数据库并编辑config.php。如果要每30分钟将WordPress更新到最新版本,可能会有些棘手,但是我通常只使用稳定版本,而将dev版本保留在另一个环境中。

看起来像这样:

mkdir wordpress-project
git clone ..url-to-my-wordpress-base 

另一个缺点是,通过git从实际的WordPress存储库中获取插件有点困难,可以使用git svn命令来做到这一点,但是我发现使用它并不容易。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.