# WordPress-verzió

> A teszt a felismert WordPress-verziót a wordpress.org legfrissebb kiadásához méri; ha elmaradtál, frissítsd a magot adatbázis-mentés után.

A WordPress magja a legtöbb támadás célpontja, mert a hibák és javításuk nyilvánosak. A WordPress biztonsági oldala szerint hivatalosan csak a legfrissebb kiadás támogatott, a biztonsági csapat a régebbi verziókra csak udvariasságból, az automatikus frissítésekhez portol javításokat. Ez a teszt azt nézi, hogy az oldal a legfrissebb kiadási sorozaton fut-e.

Ha az oldal nem WordPress, vagy a verziót nem tudjuk megállapítani, a teszt nem értelmezhető.

## Hogyan mérjük

**A verzió felismerése.** A teszt először a kezdőoldal `<meta name="generator">` címkéjét nézi (`WordPress 7.1.4` alakban). Ha nincs, a `wp-emoji-release.min.js?ver=` fájl verzióparaméterét veszi (a jQuery verzióját nem). Ha ez is hiányzik, megnézi a `/feed/` címet, abban a `<generator>https://wordpress.org/?v=…</generator>` elemet.

Egy gondosan beállított oldalon ezek mind el lehetnek rejtve. Ilyenkor a teszt nem értelmezhető, de ez nem jelenti azt, hogy a verzió friss.

**Az összehasonlítás.** A legfrissebb verziót és a mért verzió állapotát a wordpress.org API-jából kapja (`version-check` és `stable-check`). A teszt csak a **főverziót és a másodlagos verziót** (a `major.minor` részt, például 7.1) hasonlítja össze: ha a mért kisebb, mint a legfrissebb, hibát jelez.

| Eredmény | Mikor |
|---|---|
| Megfelelő | A mért `major.minor` nem kisebb a legfrissebbnél. |
| Hiba (közepes súlyosság) | A mért `major.minor` elmarad a legfrissebbtől. |
| Hiba (magas súlyosság) | Ugyanez, de a wordpress.org `stable-check` a mért verziót `insecure` állapotúnak jelöli. |
| Nem értelmezhető | Nem WordPress az oldal, ismeretlen a verzió (vagy nem szám, például fejlesztői `trunk`), vagy a külső adat nem volt elérhető. |

Fontos következmény: a teszt a **javítóverziókat nem hasonlítja** össze. Ha a legfrissebb 7.1.4, akkor a 7.1.3-at futtató oldal is megfelelőt kap. A wordpress.org kiadási oldala viszont azt írja, hogy a sorozatból csak a legutóbbi verzió biztonságos és aktívan karbantartott, ezért a javítóverziót is érdemes naprakészen tartani.

## Hogyan javítsd

1. **Készíts mentést** az adatbázisról és a fájlokról. A WordPress frissítési útmutatója is ezt írja első lépésnek.
2. **Frissíts a legújabb kiadásra.** Az admin felületen a Vezérlőpult > Frissítések oldalról egy kattintással megy.
3. **Frissítsd a bővítményeket és a témát is**, mert az új főverzió ritkán érinti a régi, karbantartatlan kódot jól.
4. **Ellenőrizd az automatikus frissítést.** A WordPress dokumentációja szerint a legtöbb oldalon alapból be van kapcsolva az automatikus háttérfrissítés, a másodlagos (karbantartó és biztonsági) core-kiadásokra pedig már az 5.6 előtt is be volt. Ha az oldalon kikapcsolták, kapcsold vissza, vagy tartsd kézzel naprakészen.

### WordPress

Parancssorból, a WordPress mappájában (WP-CLI). Az első sor a home-mappádba menti az adatbázist (nem a webrootba, mert onnan letölthető), és csak sikeres mentés után fut a frissítés. A fájl létrejötte után ellenőrizd, és ha nincs rá szükség, töröld.

```bash title="Terminál"
(umask 077; wp db export ~/before-update-wp-core.sql) &&
wp core update &&
wp core update-db
```

A `wp core update` az adatbázist nem frissíti, ezért kell utána az `update-db`. Multisite-on az utolsó sor `wp core update-db --network`. A fájlokról (a `wp-content`, Bedrocknál a `web/app` mappa) is készíts mentést.

**Bedrock-alapú oldalon** a frissítés Composerrel megy: `composer update roots/wordpress`. Ha a `composer.json` pontos verziót ír elő, előbb ott emeld meg. Ezután commit és telepítés, majd a szerveren `wp core update-db`.

Ha az oldalt rootként futtatod, a létrejött fájlok tulajdonosát állítsd vissza a webfelhasználóra, különben a WordPress később nem tud frissíteni vagy írni.

## Hogyan ellenőrizd

Parancssorból:

```bash title="Terminál"
wp core version
wp core check-update
```

A `wp core version` kiírja a telepített verziót, a `wp core check-update` felsorolja az elérhető frissítéseket, vagy jelzi, ha naprakész vagy. Ezután futtasd újra a riportot. Ha a verziót a teszt korábban nem ismerte fel, a javítás után sem fogja, de ez nem hiba.
