Ugrás a fő tartalomhoz

Bedrock - Modern WordPress Stack

A Bedrock egy modern WordPress boilerplate, amely továbbfejlesztett mappastruktúrával, Composer alapú függőségkezeléssel és egyszerű konfigurációval rendelkezik. A Roots csapat fejleszti és tartja karban.

Miért Bedrock?

A Bedrock a WordPress fejlesztés legjobb gyakorlatait követi:

  • Composer alapú függőségkezelés - WordPress core, pluginok és témák kezelése Composerrel
  • Továbbfejlesztett mappastruktúra - A wp-content mappa elkülönítve az alkalmazás gyökérkönyvtárától
  • Környezeti változók - .env fájl alapú konfiguráció (dotenv)
  • Biztonságosabb - A webroot csak a publikus fájlokat tartalmazza
  • Egyszerű deploy - Alkalmas modern deployment workflow-khoz

Mappastruktúra

site/
├── composer.json # Függőségek definíciója
├── config/
│ ├── application.php # Fő WordPress konfiguráció
│ └── environments/
│ ├── development.php # Fejlesztői környezet beállítások
│ ├── staging.php # Staging környezet beállítások
│ └── production.php # Éles környezet beállítások
├── vendor/ # Composer függőségek
├── web/ # Webroot (document root)
│ ├── app/ # wp-content megfelelője
│ │ ├── mu-plugins/ # Must-use pluginok
│ │ ├── plugins/ # Pluginok
│ │ ├── themes/ # Témák
│ │ └── uploads/ # Feltöltések
│ ├── wp-config.php # WordPress betöltő
│ ├── index.php # WordPress belépési pont
│ └── wp/ # WordPress core (Composer által kezelt)
└── .env # Környezeti változók

Telepítés

Előfeltételek

  • PHP >= 8.0
  • Composer

Új projekt létrehozása

composer create-project roots/bedrock projekt-neve

Környezeti változók beállítása

Másold le a .env.example fájlt .env néven és töltsd ki:

cd projekt-neve
cp .env.example .env

Szerkeszd a .env fájlt:

DB_NAME='adatbazis_neve'
DB_USER='adatbazis_felhasznalo'
DB_PASSWORD='adatbazis_jelszo'
DB_HOST='localhost'

WP_ENV='development'
WP_HOME='https://example.com'
WP_SITEURL="${WP_HOME}/wp"

# Generálj egyedi kulcsokat: https://roots.io/salts.html
AUTH_KEY='generalt-kulcs'
SECURE_AUTH_KEY='generalt-kulcs'
LOGGED_IN_KEY='generalt-kulcs'
NONCE_KEY='generalt-kulcs'
AUTH_SALT='generalt-kulcs'
SECURE_AUTH_SALT='generalt-kulcs'
LOGGED_IN_SALT='generalt-kulcs'
NONCE_SALT='generalt-kulcs'
Salt kulcsok generálása

A roots.io/salts.html oldalon egyszerűen generálhatsz Bedrock-kompatibilis salt kulcsokat.

Pluginok és témák kezelése

A Bedrock alapértelmezetten a WPackagist repository-t használja.

Plugin telepítése

# WordPress.org pluginok
composer require wpackagist-plugin/wordpress-seo

# Prémium pluginok (ha van Composer repository-juk)
composer require developer/premium-plugin

Téma telepítése

composer require wpackagist-theme/flavor

WordPress core frissítése

composer update roots/wordpress

Környezetek kezelése

A Bedrock támogatja a különböző környezeteket a WP_ENV változó segítségével:

  • development - Fejlesztői környezet
  • staging - Tesztkörnyezet
  • production - Éles környezet

Környezet-specifikus beállítások

A config/environments/ mappában külön fájlokban definiálhatod az egyes környezetek beállításait:

config/environments/development.php:

<?php

use Roots\WPConfig\Config;

Config::define('SAVEQUERIES', true);
Config::define('WP_DEBUG', true);
Config::define('WP_DEBUG_DISPLAY', true);
Config::define('WP_DEBUG_LOG', true);
Config::define('SCRIPT_DEBUG', true);

ini_set('display_errors', '1');

config/environments/production.php:

<?php

use Roots\WPConfig\Config;

Config::define('WP_DEBUG', false);
Config::define('WP_DEBUG_DISPLAY', false);
Config::define('DISALLOW_FILE_EDIT', true);
Config::define('DISALLOW_FILE_MODS', true);

Must-Use pluginok

A must-use pluginokat a web/app/mu-plugins/ mappába helyezd. Ezek automatikusan betöltődnek és nem lehet őket kikapcsolni az admin felületen.

Composer csomagként:

{
"extra": {
"installer-paths": {
"web/app/mu-plugins/{$name}/": [
"type:wordpress-muplugin"
]
}
}
}

Deployment

Git-alapú deployment

A Bedrock tökéletesen alkalmas Git-alapú deployment-re:

# .gitignore már megfelelően van beállítva
git init
git add .
git commit -m "Initial commit"

Composer install a szerveren

composer install --no-dev --optimize-autoloader

Webszerver konfiguráció

A document root a web/ mappára kell mutasson:

Apache (.htaccess a web/ mappában):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Nginx:

server {
listen 80;
server_name example.com;
root /srv/www/example.com/web;

index index.php;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}

Bedrock + Sage téma

A Roots csapat Sage témáját kifejezetten Bedrock-kal való használatra tervezték:

# Sage téma telepítése
composer require roots/sage

# Vagy közvetlenül a themes mappába
cd web/app/themes
composer create-project roots/sage tema-neve

Prémium pluginok kezelése

Prémium pluginokhoz, amelyek nem érhetők el WPackagist-en, több lehetőséged van:

1. Privát Composer repository

{
"repositories": [
{
"type": "composer",
"url": "https://connect.developer.com"
}
]
}

2. Közvetlen ZIP letöltés

{
"repositories": [
{
"type": "package",
"package": {
"name": "developer/premium-plugin",
"version": "1.0.0",
"type": "wordpress-plugin",
"dist": {
"url": "https://example.com/plugin.zip",
"type": "zip"
}
}
}
]
}

3. Satispress

A SatisPress WordPress plugin segítségével saját Composer repository-t hozhatsz létre a prémium pluginjaidból.

Hasznos parancsok

# Projekt létrehozása
composer create-project roots/bedrock

# Függőségek telepítése
composer install

# Plugin hozzáadása
composer require wpackagist-plugin/plugin-neve

# Plugin eltávolítása
composer remove wpackagist-plugin/plugin-neve

# Frissítések keresése
composer outdated

# Minden frissítése
composer update

Források