I build a lot of websites with WordPress, and my initial setup is basically always the same :
- Latest version of WP
- Latest versions of about 5 plugins
- My naked development theme
Instead of downloading/uploading these things separately and do that by hand each time I start a new project, I’d like to create a bash script that would do this :
- Download the latest version of WordPress
- Unzip
- Download the latest version of plugin X
- Unzip to WP plugins folder
- Download my naked theme
- Unzip to themes folder
Now downloading the latest WP is easy (http://wordpress.org/latest.tar.gz), downloading my naked theme too, but I’m having trouble getting the latest version of a plugin, as they are not called latest.tar.gz
but specifict names with the version (ex: wptouch.1.9.26.zip)
EDIT : So I’m wonderning now if it’s possible to use cURL in my bash script to find the exact URL of the Current version of a plugin. The idea would be to fetch the page, and then find the value of the href
that is in the paragraph just after the <h3>Current Version</h3>
.
Here’s an example, all plugin download pages on WP are like this :
<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>
To always get latest plugin take for example my plugin:
http://wordpress.org/extend/plugins/wordpress-file-monitor-plus/
the download link for the latest is:
http://downloads.wordpress.org/plugin/wordpress-file-monitor-plus.1.1.zip
but if you remove the version from the download link you always get the latest version:
http://downloads.wordpress.org/plugin/wordpress-file-monitor-plus.zip
EDIT: Have you considered keeping a folder of the latest wordpress and plugins unpacked? Then as soon as a new plugin or wordpress comes out you simply unpack that over what you have. Then your bash script just packages the whole lot to be used on an install.
Create the bash script:
Make Executable:
Copy this into it:
Run the command
I created a bash script to update WordPress using subversion as they recommend.
I’ve modified this to do the installation. This second script is untested but it should get you started. You will need to write your own create_wordpress_database_and_user.sql – but you didn’t ask for that in the question anyway, so maybe you can ignore it.
I have been using
git clone
as a sort of poor mans bash.The WordPress git is updated every 30 minutes so I clone it into my own repo with my own plugins/themes or just pull directly from it.
The whole thing is pretty fast, in fact it is only about 2 lines, and the only thing I have to do manually is create the local DB and edit the config.php. It can be a bit tricky making sure you update WordPress to the latest version if you want to do it every 30minutes, but I typically only use the stable version, and keep the dev version in another environment.
It looks like this:
The other downside is that it is a bit hard to get plugins from the actual WordPress repo through git, it is possible to do it, using the
git svn
command but I find it’s not easy to work with, yet.I have created a bash script to install wordpress.
This script will automate the following:
You can find script on github.com
https://github.com/jeoga/wordpress_install_bash_script