//这是一个存档的帖子!

layout: post current: post cover: assets/images/posts/wpgithub.jpg title: Auto deploy your static Wordpress site in github! date: 2019-09-19 12:00:00 +0545 navigation: True categories: blog tags: tech class: post-template subclass: ‘post’ author: cdrrazan permalink: /blog/auto-deploy-static-wordpress-site-in-github/ summary: Github is one of the most easiest site to host our static HTML/Jekyll sites. But this doesn’t mean we can’t use it for wordpress. In fact, we can use the github to host our static wordpress site. For this we need our site to be converted to HTML. In case of wordpress, the best solution is to use the plugin such as “Simply Static” —

原创发布于:2017-12-09-09。更新日期:2019-09-19。


Wordpress网站的定制化,让我们的网站变得更加的漂亮,真的是非常棒。无论其他平台的崛起,wordpress似乎总是利用自己的优势,无论是定制和托管都比较容易。但是,如果我们的网站是静态的,那么我们甚至不需要在主机上花一毛钱,因为作为一个开发者,我们有一个很好的解决方案,那就是GITHUB。

Github是最容易托管我们静态HTML/Jekyll网站的网站之一。但这并不意味着我们不能用它来托管wordpress。事实上,我们可以使用github来托管我们的静态wordpress网站。为此,我们需要将我们的网站转换为HTML。对于wordpress来说,最好的解决办法是使用Simply Static这样的插件。当你的转换后的网站被下载到本地存储中后,你可以用正常的方法在github中部署你的网站。

但如果你的网站是静态的,每两周更新一次,或者按照你的意愿更新一次呢?

为了这个目的,我写了下面的脚本,让任务更容易完成。

(要求。对于这个脚本,假定工作目录是github repo)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
#Script to auto deploy the generated Static WP site to Github
#Check if unzip is installed or not

if apt-cache policy unzip >/dev/null 2>&1; then
echo "Unzip is installed. Moving onto next step."
else
echo "Unzip wasn't detected. Installing Unzip... Please wait."
sudo apt-get --force-yes --yes install unzip
fi

#making dir and unzipping the content
mkdir wptmp
unzip wps.zip -d ~/wptmp

#making tmp directory for moving .git folder
mkdir gittmp
mv ~/wordpress/.git ~/gittmp
cp ~/wptmp/deploy-wp-static-github.sh ~/wordpress
mv ~/gittmp/.git ~/wordpress/
cd wordpress

#git commands
{
git add .
git commit -a -m "$1"
git push
}

#removing temp directory
rm -rf ~/wptmp
rm -rf ~/gittmp

由于我是ubuntu的用户,这是为所有ubuntu用户准备的。我希望在不久的将来能扩展到其他发行版。你可以使用其他的解压服务,将unzip替换成你喜欢的应用程序。你也可以找到更多类似的bash片段和脚本。