web-dev-qa-db-fra.com

Wordpress (WP + plugins + theme)?

Je construis beaucoup de sites Web avec Wordpress, et ma configuration initiale est fondamentalement toujours la même:

  • Dernière version de WP
  • Dernières versions d'environ 5 plugins
  • Mon thème de développement nu

Au lieu de télécharger/télécharger ces éléments séparément et de le faire manuellement chaque fois que je commence un nouveau projet, j'aimerais créer un script bash qui ferait ceci:

  • Téléchargez la dernière version de Wordpress
  • Unzip
  • Téléchargez la dernière version du plugin X
  • Décompressez dans le dossier WP plugins
  • Téléchargez mon thème nu
  • Décompressez dans le dossier de thèmes

Maintenant, télécharger le dernier WP est facile (http://wordpress.org/latest.tar.gz), télécharger mon thème nu aussi, mais je ne parviens pas à obtenir la dernière version d'un plugin, car ils ne s'appellent pas latest.tar.gz mais des noms spécifiques avec la version (ex: wptouch.1.9.26.Zip)

EDIT: Je me demande donc s’il est possible d’utiliser cURL dans mon script bash pour trouver l’adresse exacte de la version actuelle d’un plugin. L'idée serait d'extraire la page, puis de trouver la valeur de la variable href qui se trouve dans le paragraphe situé juste après le <h3>Current Version</h3>.

Voici un exemple, toutes les pages de téléchargement de plugins sur WP ressemblent à ceci:

<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>
8
mike23

Pour toujours obtenir le dernier plugin, prenez par exemple mon plugin:

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

le lien de téléchargement pour le dernier est:

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

mais si vous supprimez la version du lien de téléchargement, vous obtenez toujours la dernière version:

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

EDIT: Avez-vous envisagé de conserver un dossier contenant les derniers wordpress et plugins? Ensuite, dès qu'un nouveau plugin ou wordpress sort, vous décompressez simplement ce que vous avez. Ensuite, votre script bash empaquette le lot à utiliser lors d’une installation.

4
Brady

Créez le script bash:

touch wp_plugins_theme.sh

Rendre exécutable:

chmod +x ./wp_plugins_theme.sh

Copiez ceci dedans:

#!/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

Lancer la commande

./wp_plugins_theme.sh
1
jgraup

J'ai créé un script bash pour installer WordPress.

Ce script automatise les éléments suivants:

  • Téléchargez et installez Wordpress automatiquement
  • Créer des utilisateurs par défaut avec des mots de passe
  • Installer tous les plugins par défaut
  • Installez le thème par défaut ou personnalisé en utilisant l’URL Zip que vous avez le plus souvent utilisée.

Vous pouvez trouver le script sur github.com

https://github.com/jeoga/wordpress_install_bash_script

0
Aman Bansal

J'ai créé un script bash pour mettre à jour Wordpress en utilisant Subversion car ils recommend .

#!/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/ .

J'ai modifié ceci pour faire l'installation. Ce second script n'a pas été testé, mais il devrait vous aider à démarrer. Vous devrez écrire votre propre create_wordpress_database_and_user.sql - mais vous ne l’avez pas demandé dans la question, alors peut-être que vous pourrez l’ignorer.

#!/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
icc97

J'utilise git clone comme une sorte de pauvre mans bash.

Le git WordPress est mis à jour toutes les 30 minutes, je le clone donc dans mon propre dépôt avec mes propres plugins/thèmes ou tout simplement en extrait directement.

Le tout est assez rapide, en fait il ne s’agit que de 2 lignes et la seule chose que je dois faire manuellement est de créer la base de données locale et d’éditer le fichier config.php. Cela peut être un peu délicat de s'assurer de mettre à jour WordPress vers la dernière version si vous voulez le faire toutes les 30 minutes, mais je n'utilise généralement que la version stable et conserve la version dev dans un autre environnement.

Cela ressemble à ceci:

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

L’autre inconvénient est qu’il est un peu difficile d’obtenir des plugins à partir du dépôt WordPress réel via git. Il est possible de le faire en utilisant la commande git svn mais je trouve que ce n’est pas facile à travailler pour le moment.

0
Wyck