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

时间:2011-05-13 作者:mike23

我用Wordpress建立了很多网站,我的初始设置基本上都是一样的:

WP的最新版本大约有5个插件的最新版本,我的裸体开发主题不是单独下载/上传这些东西,而是在每次启动新项目时手动完成,我想创建一个bash脚本来完成这一任务:

下载最新版本的Wordpress解压下载最新版本的插件X解压到WP plugins文件夹下载我的裸体主题现在下载最新的WP很容易(http://wordpress.org/latest.tar.gz),也下载了我的裸体主题,但我很难获得最新版本的插件,因为它们没有被调用latest.tar.gz 但具体名称和版本(例如:wptouch.1.9.26.zip)

编辑:所以我现在想知道是否可以使用cURL 在我的bash脚本中查找插件当前版本的确切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>

5 个回复
SO网友:Scott

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

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出现,您只需将其解包到现有插件或wordpress上即可。然后,您的bash脚本只打包了要在安装中使用的全部内容。

SO网友:jgraup

创建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

SO网友:icc97

我创建了一个bash脚本,以使用subversion更新Wordpressrecommend.

#!/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\\u wordpress\\u database\\u和用户。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/ .

SO网友:Wyck

我一直在使用git clone 作为一种穷人的狂欢。

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

整个过程非常快,实际上只有大约2行,我唯一需要手动做的就是创建本地DB并编辑配置。php。如果你想每30分钟更新一次WordPress到最新版本,这可能有点棘手,但我通常只使用稳定的版本,并将开发版本保存在另一个环境中。

看起来是这样的:

mkdir wordpress-project
git clone ..url-to-my-wordpress-base 
另一个缺点是,通过git从实际的WordPress repo中获取插件有点困难,可以使用git svn 但我发现它还不容易使用。

SO网友:Aman Bansal

我创建了一个bash脚本来安装wordpress。

此脚本将自动执行以下操作:

自动下载并安装Wordpress,使用密码创建默认用户,安装所有默认插件,按常用的zip url安装默认主题或自定义主题

https://github.com/jeoga/wordpress_install_bash_script

结束

相关推荐

ADMIN_PRINT_SCRIPTS-$HOOK_SUFFIX是否适用于指向单个文件的嵌套路径?

可以用钩子admin_print_scripts-$hook_suffix 用于创建的挂钩,如$hookname = get_plugin_page_hookname(\"my-quiz/lib/admin/$code_page\", \'\' );?哪里$code_page 是somefilename.php.我试过了,但似乎不起作用。我想这可能是因为文件路径?UPDATE上面的代码注册的是“admin\\u page\\u my-quick/lib/admin/question\\u form”,但这