Préparation

- Créer un dossier (dossier principal).

A partir de ce dossier, pour voir si omposer est installé, taper :

composer -- version

- Si c'et pas le cas, aller sur getcomposer.org ou taper les lignes suivantes :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

sudo mv composer.phar /usr/local/bin/composer

- Vérifier la version installée, relancer les lignes ci-dessus pour faire une mise à jour si nécessaire.

composer -- version

Récupérer le code d'installation de Wordpress sur Packagist à l'adresse suivante : https://packagist.org/packages/johnpbloch/wordpress ou taper ce code dans le terminal :

// Répondre yes à la question

composer require johnpbloch/wordpress

Un dossier vendor, un fichier composer.json, composer.back et un dossier wordpress sont créés.

Remarque pour le fun : si on supprime tous les fichers et que l'on garde 'composer.json', en tapant 'composer install' dans le terminal on a une installation complete de wordpress.

- Créer un fichier '.gitignore' et mettre le code suivant :

vendor

wordpress

- Aller sur Admirer ou phpMyAdmin pour créer une base de données.

- Installer WPcli (export de BDD, installation des plugins, etc..) - https://wp-cli.org/fr/

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

chmod +x wp-cli.phar

sudo mv wp-cli.phar /usr/local/bin/wp

Vérifier l'installation en tapant :

wp --info

- Créer un fichier 'wp-cli.yml' dans le dossier principal (non wordpress) et indiquer les lignes suivantes (permet d'indiquer que Wordpress n'est pas à la racine du projet) :

path: wordpress

- Créer les fichiers 'wp-config-sample.php' et 'wp-config.php' à la racine du dossier principal.

- Y copier dedans le contenu du fichier 'wp-config-sample' situé dans le dossier 'wordpress'.

- Mettre les identifiants de la base de données dans le fichier 'wp-config.php'

- Faire 'composer install'

Pour installer automatiquement Worpdress : https://make.wordpress.org/cli/handbook/how-to-install/

wp core install --url="http://localhost/dossierDuProjet" --title="monTitreDeSite" --admin_user="monUsernameWP" --admin_password="monPasswordWP" --admin_email="monEmail@gmail.com"

// Réponse attendue -> Success: WordPress installed successfully.

Remarque : on peut également utiliser la commande suivante si on veut installer avec un prompt :

wp core install --prompt

- Créer un fichier 'index.php' à la racine du dossier principal

- Y coller le contenu du fichier 'index.php' situé dans le dossier 'wordpress'

// REMPLACER :

require __DIR__ . '/wp-blog-header.php';

PAR :

require __DIR__ . '/wordpress/wp-blog-header.php';

- créer un fichier .htaccess à la racine du dossier principal:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^wp/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1

Dans le nouveau fichier 'wp-config.php' :

- Ajouter le code suivant après les commentaires : '/* Add any custom values between this line and the "stop editing" line. */'

// ajouter des constantes custom

// Je définis l'URL vers la page d'accueil de mon site

define(

'WP_HOME',

rtrim ( 'http://localhost/S08/wp-oSailing-Marc-cherier', '/' )

);

// Je définis l'URL vers le dossier source de WordPress

// URL sur internet -> contient http ou https

define(

'WP_SITEURL',

WP_HOME . '/wordpress'

);

// Je définis l'URL vers le dossier wp-content

// Chemin local du dossier (/var/www/html...)

define(

'WP_CONTENT_URL',

WP_HOME . '/wp-content'

);

// Je définis le path (chemin côté serveur) vers le dossier wp-content

define(

'WP_CONTENT_DIR',

__DIR__ . '/wp-content'

);

WPackagist

Nous permet d'utiliser des thèmes et des plugins avec composer. Il va créer le dossier 'wp-content' à la racine du projet. Pour ça il faut installer un thème et un plugin.

https://wpackagist.org/ pour voir le nom des plugins et des themes d'installation.

On peut trouver les noms des plugins et thèmes fournis par WP à l'url https://fr.wordpress.org/themes/hello-elementor

- Ajouter à 'composer.json' le code suivant pour les plugns:

,
"config": {
"allow-plugins": {
"johnpbloch/wordpress-core-installer": true,
"composer/installers": true
}
}

- Ajouter à 'composer.json' le code suivant pour les thèmes:

,
"repositories": [
{
"type":"composer",
"url":"https://wpackagist.org",
"only": [
"wpackagist-plugin/*",
"wpackagist-theme/*"
]
}
]

Pour installer un plugin taper :

composer require wpackagist-plugin/nomDuPlugin

Pour activer un plugin taper :

wp plugin activate nomDuPlugin

Pour installer un thème taper :

composer require wpackagist-theme/nomDuTheme

Pour activer un thème taper :

wp theme activate nomDuTheme

gitignore

- Remplacer le code '.gitignore' par le code suivant:

vendor
wordpress
wp-config.php
/wp-content/*
!/wp-content
/wp-content/themes/*
!/wp-content/themes
!/wp-content/themes/monTheme

Changer la langue du site

wp language core install fr_FR

Pour générer le scss, se placer dans le dossier du thème et taper :

parcel build src/scss/main.scss

il créé undossier 'dist' et 'main.scss'