WordPress – standardy projektowe
Zbiór wytycznych dla projektów realizowanych z wykorzystaniem wordpress
Narzędzia programistyczne
Do realizacji projektów opartych o wordpress rekomendujemy wykorzystanie następujących narzędzi:
- Visual studio code – jako edytor kodu (przydatne rozszerzenia: Beautify )
- Sourcetree / Github Desktop / Github Console – narzędzie do zarządzania repozytorium
- Buddy – narzędzie do zarządzania projektem dla środowisk testowych oraz produkcyjnych
- Docker Desktop – program umożliwiający w łatwym sposób tworzenie i uruchamianie aplikacji w lokalnym środowisku
Zalecamy instalacje menedżerów pakietów npm lub yarn w wersjach:
- npm – 8.19.4
- yarn – 1.22.19
Repozytorium z podstawową konfiguracją projektów:
https://github.com/KamikazeDigital/project-starter
Struktura katalogowa
project_name
--- wp-content
--- languages ( default )
--- plugins ( custom plugin / default plugin add to gitignore )
--- themes
--- project-theme-name ( custom theme )
--- assets
--- css
--- fonts
--- images
--- js
--- src ( not upload at production )
--- js ( working script files )
--- scss ( working style files )
--- parts
--- patterns
--- template
functions.php
package.json ( theme
screenshot.png ( theme images )
style.css ( set name, author, description and version )
theme.json ( theme settings configuration )
--- twentytwentyfour ( default wodpress theme / add to gitignore )
--- upgrade
--- uploads ( upload all files )
index.php
.env ( add to gitignore )
.env-simple ( base env file )
.gitignore ( ignore file )
docker-compose.yml ( docker container configuration )
Dockerfile ( docker file configuration )
readme.txt ( project instruction )
uploads.ini ( change apache configuration )
wp-config.php ( wdopress configuration )
Plik konfiguracyjny .env
Wszystkie zmienne środowiskowe należy definiować w pliku konfiguracyjnym .env plik ten należy utworzyć samodzielnie na bazie pliku .env-simple
Praca na lokalnym środowisku
Do uruchomienia projektu na lokalnym środowisku potrzebujemy jedynie pliku konfiguracyjnego docker-compose.yml oraz opcjonalnie Dockerfile
docker-compose.yml – plik konfiguracyjny kontenera docker. Zawiera informacje dotyczące usług, kontenerów, sieci oraz innych ustawień
Dockerfile – plik tekstowy służący do definiowania kroku po kroku procesu budowy obrazu kontenera. Określa instrukcje, takie jak dodawanie plików, instalacja oprogramowania czy konfiguracja środowiska, które Docker następnie wykonuje w odpowiedniej kolejności podczas budowy obrazu.
docker-compose.yml
W poniższej konfiguracji uruchamiamy kontener wordpress w którym montujemy własne zasoby dla katalogu wp-content oraz pliki uplaods.ini, wp-config.php i .env Wszystkie pozostałe pliki będą zaczytywane z wewnątrz kontenera.
Dodatkowo uruchamiamy kontener z mysql oraz phpmyadminem do zarządzania bazą danych. Jeśli chcemy połączyć się z naszą lokalną bazą którą uruchomimy należy pamiętać aby dodać również dostępy do bazy danych w pliku env
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
volumes:
- ./wp-content:/var/www/html/wp-content # folder współdzielony z kontenerem zawierający szablony, pluginy, etc.
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # ustawienia wysyłania plików na serwer (wyższy limit)
- ./wp-config.php:/var/www/html/wp-config.php #wp-config
- ./.env:/var/www/html/.env #environment variables
ports:
- 8080:80
db:
image: mysql:8
restart: always
platform: linux/arm64/v8
environment:
MYSQL_DATABASE: project_db
MYSQL_USER: project_user
MYSQL_PASSWORD: project_password
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin:4.9
restart: always
ports:
- 8085:80
environment:
PMA_HOST: db
PMA_PORT: 3306
MYSQL_ROOT_PASSWORD: password
volumes:
wordpress:
db:
Dockerfile
W tym pliku określamy wersję php na 8.1 oraz wersję wodpress na najnowszą stabilną. W razie potrzeby możemy dodać dodatkowe instrukcję określające np instalację dodatkowych modułów.
FROM php:8.1-apache
FROM wordpress:latest
Szablon projektu
W aktualnie opracowanym podejściu dla projektów wodpress szablony budujemy poprzez bloki z wykorzystaniem wtyczek elementor lub kadence-blocks.
Jeśli potrzebujesz dodać dodatkowe style lub skrypty postępuj zgodnie z poniższą instrukcją:
- Przejdz do katalogu kamikaze_template
- Zainstaluj wszystkie niezbędne pakiety package.json
npm install lub yarn install
- Jeśli wszystkie pakiety zostaną pomyślnie zainstalowane uruchom:
npm run watch:scss – śledzi wszystkie zmiany w plikach scss znajdujących się w katalogu /assets/src/scss
npm run watch:js – śledzi wszystkie zmiany w plikach js znajdujących się w katalogu /assets/src/js
Pliki są na bieżąco komilowane do doclowych plików w katalogach /assets/css oraz /assets/js
Dodatkowe funkcjonalności lub niestandardowe rozserzenia takie jak dodatkowe custom post type lub eint pointy api należy zaimplementować w pliku function.php
Praca z repozytorium
Dla każdego projektu tworzymy osobne repozytorium na platformie github.
W repozytorium projektu tworzymy dwa branche: production oraz staging
Repozytorium aktualizujemy systematycznie wraz z rozwojem projektu. Rekomendujemy przy zakończeniu pracy nad każdą większą funkcjonalnością lub po zakończeniu pracy w danym dniu.