Üdvözöllek, WordPress felhasználó és webfejlesztő társam! Ha valaha is érezted úgy, hogy a blogbejegyzések és oldalak már nem elegendőek ahhoz, hogy a weboldalad tartalmát strukturáltan és hatékonyan kezeld, akkor jó helyen jársz. A **WordPress** alapértelmezett bejegyzés- és oldaltípusai fantasztikusak, de a rugalmasabb, egyedi tartalomtípusok kezeléséhez gyakran többre van szükségünk. Itt jönnek képbe a **Custom Post Type-ok**, vagy röviden **CPT-k**.
Ebben az átfogó cikkben belemerülünk a Custom Post Type-ok világába. Megtudhatod, mik ezek pontosan, miért érdemes használni őket, és lépésről lépésre bemutatom, hogyan hozhatsz létre egyet WordPress weboldaladon – akár kódolás nélkül, akár kód segítségével. Készülj fel, hogy új szintre emeld a WordPress tartalomkezelési képességeidet!
Mik azok a Custom Post Type-ok (CPT-k)?
Kezdjük az alapoknál! Amikor telepíted a WordPress-t, alapértelmezés szerint két fő tartalomtípussal találkozol: a „Bejegyzések” (Posts) és az „Oldalak” (Pages). A bejegyzéseket jellemzően időrendben megjelenő blogcikkekhez használjuk, míg az oldalak statikus tartalmakhoz ideálisak (pl. „Rólunk”, „Kapcsolat”).
Azonban mi van akkor, ha egy termékeket bemutató webáruházat, egy portfólióoldalt, egy rendezvénynaptárt, vagy egy filmadatbázist szeretnél építeni? Ebben az esetben a „Bejegyzés” vagy az „Oldal” nem feltétlenül a legmegfelelőbb eszköz. Egy terméknek van ára, cikkszáma, súlya; egy portfólióelemnek van ügyfélneve, befejezési dátuma, projektkategóriája. Ezek az információk nem illenek bele a hagyományos bejegyzés- vagy oldaltípusok kereteibe.
A **Custom Post Type-ok** (Egyedi Bejegyzéstípusok) pontosan erre nyújtanak megoldást. Lényegében olyan új, teljesen egyedi tartalomtípusokat hozhatsz létre, amelyek saját menüpontot kapnak a WordPress admin felületén, saját szerkesztőfelülettel rendelkeznek, és a saját logikájuk szerint kezelhetők. Gondolj rájuk úgy, mint a WordPress tartalomkezelő rendszerének rugalmas kiegészítőire, amelyek lehetővé teszik, hogy a platformot pontosan a te igényeidre szabd.
Technikailag nézve, a WordPress az összes tartalmát (bejegyzéseket, oldalakat, CPT-ket, menüket, kommenteket stb.) ugyanabban az adatbázis táblában, a `wp_posts` táblában tárolja. A különbség a `post_type` mező értékében rejlik, ami megmondja a WordPress-nek, hogy melyik tartalomtípussal van dolga. Amikor létrehozol egy **CPT-t**, például egy „Portfólió” típusút, akkor az összes portfólió elemhez a `post_type` értéke `portfolio` lesz, így a WordPress tudja, hogyan kezelje és jelenítse meg ezeket az elemeket.
Miért van szükséged Custom Post Type-okra? Az előnyök
A CPT-k használatának számos előnye van, amelyek jelentősen javíthatják a weboldalad tartalomkezelését, fejlesztését és felhasználói élményét:
- Rendezettebb tartalomkezelés: A legnyilvánvalóbb előny. Külön menüpontot kapnak az admin felületen, így a termékek, szolgáltatások, események vagy bármely más egyedi tartalom könnyen elkülöníthetővé és kezelhetővé válik a hagyományos bejegyzésektől és oldalaktól. Ez tisztább és intuitívabb admin felületet eredményez.
- Fejlettebb funkcionalitás: A CPT-khez könnyedén hozzárendelhetsz egyedi kategóriákat és címkéket (ezeket hívjuk **egyedi taxonómiáknak**), valamint **egyedi mezőket** (Custom Fields), amelyekkel strukturáltan tárolhatsz specifikus adatokat (pl. termék ára, rendezvény dátuma, film rendezője). Ez kulcsfontosságú az adatvezérelt tartalmak esetén.
- SEO előnyök: A CPT-k lehetővé teszik számodra, hogy optimalizáld az URL struktúrádat (pl. `weboldalad.hu/termekek/pulover`). Külön SEO beállításokat konfigurálhatsz minden egyes CPT-hez és annak archív oldalához, segítve ezzel a keresőmotorokat a tartalom jobb megértésében. Emellett a strukturáltabb adatok (pl. schema.org markup) könnyebben implementálhatók CPT-k segítségével, ami javíthatja a rich snippet-ek megjelenését a találati oldalon.
- Rugalmasság és skálázhatóság: A WordPress alapból egy blog platform, de a CPT-kkel teljes értékű tartalomkezelő rendszerré (CMS) alakíthatod bármilyen típusú weboldalhoz. Legyen szó egy ingatlanügynökségi oldalról, egy receptgyűjteményről vagy egy orvosi rendelő honlapjáról, a CPT-k segítségével pontosan a projekt igényeire szabhatod a rendszert.
- Könnyebb fejlesztés: A fejlesztők számára a CPT-kkel való munka logikusabb és átláthatóbb. Könnyebben lehet egyedi sablonokat (template-eket) készíteni a megjelenítésükhöz, és specifikus lekérdezéseket (queries) írni az adatbázisból, ami felgyorsítja a fejlesztési folyamatot.
- Jobb felhasználói élmény: Mind az adminisztrátorok (akik a tartalmat kezelik), mind a látogatók (akik fogyasztják a tartalmat) számára jobb élményt nyújt. Az adminok könnyebben megtalálják és szerkesztik a specifikus tartalmakat, a látogatók pedig logikusan felépített, könnyen navigálható weboldalt kapnak.
Hogyan hozz létre Custom Post Type-ot WordPressben? Két fő módszer
Két fő megközelítés létezik a **Custom Post Type-ok** létrehozására WordPressben: egy plugin segítségével (ami ideális kezdők és gyors projektek számára), vagy kód segítségével (ami nagyobb kontrollt biztosít a fejlesztőknek).
1. Módszer: Plugin segítségével (A kezdők barátja)
Ez a módszer a legegyszerűbb és a leggyorsabb. Számos kiváló plugin létezik, amelyek segítségével kódolás nélkül hozhatsz létre és kezelhetsz CPT-ket. A két legnépszerűbb:
- Custom Post Type UI (CPT UI): Ez a plugin kifejezetten CPT-k és egyedi taxonómiák létrehozására specializálódott. Kiváló felhasználói felületet biztosít.
- Advanced Custom Fields (ACF): Bár elsősorban egyedi mezők létrehozására szolgál, az ACF Pro verziója tartalmaz CPT generátor funkciót is. Ha már használod az ACF-et egyedi mezőkhöz, érdemes megfontolni.
Most nézzük meg, hogyan hozhatsz létre egy „Portfólió” CPT-t a **CPT UI** plugin segítségével:
Lépésről lépésre a CPT UI-val:
- Telepítsd és aktiváld a CPT UI plugint: Lépj be a WordPress admin felületére, navigálj a „Bővítmények” -> „Új hozzáadása” menüpontba. Keresd rá a „Custom Post Type UI” kifejezésre, telepítsd és aktiváld.
- Navigálj a CPT UI menüpontra: Az aktiválás után egy „CPT UI” menüpont jelenik meg az admin felület bal oldali sávjában. Kattints rá, majd válaszd az „Add/Edit Post Types” (Bejegyzéstípusok hozzáadása/szerkesztése) lehetőséget.
- Add meg az alapvető információkat:
- Post Type Slug: Ez lesz az egyedi azonosítója a CPT-nek, és része az URL-nek is. Csak kisbetűket, számokat és kötőjeleket tartalmazhat. Példánkban legyen `portfolio`.
- Plural Label: Ez a címke fog megjelenni az admin menüben többes számban. Példánkban: `Portfóliók`.
- Singular Label: Ez a címke fog megjelenni egyes számban (pl. „Új Portfólió hozzáadása”). Példánkban: `Portfólió`.
- Konfiguráld a további beállításokat (Details): Ez a rész rendkívül fontos, és itt szabhatod testre a CPT-d működését. Íme néhány kulcsfontosságú beállítás:
- Public: Ha `True` (igaz), akkor a CPT látható lesz a weboldalon (frontend) és az admin felületen (backend) is. Szinte mindig `True` értékű.
- Publicly Queryable: Ha `True`, akkor a CPT-hez tartozó tartalmak lekérdezhetők lesznek a frontendről. Szintén szinte mindig `True`.
- Show UI: Ha `True`, akkor az admin felületen megjelenik a CPT menüpontja. Mindig `True`.
- Show in Nav Menus: Ha `True`, akkor a CPT elemei hozzáadhatók lesznek a WordPress menüihez.
- Has Archive: Ha `True`, akkor a CPT rendelkezni fog egy archív oldallal (pl. `weboldalad.hu/portfolio/`), ahol az összes portfólió elem listázásra kerül.
- Hierarchical: Ha `True`, akkor a CPT viselkedése az „Oldalak”-hoz lesz hasonló, vagyis lehetnek szülő-gyermek hierarchiák. Blogbejegyzés típusú tartalmaknál `False`, statikus tartalmaknál `True`. Példánkban `False`.
- Rewrite: Ez a beállítás szabályozza az URL szerkezetét. A `Slug` mezőbe írd be, hogy mi szerepeljen az URL-ben a domain után (pl. `portfolio`). A `With Front` beállítással dönthetsz arról, hogy az alapértelmezett permalink struktúra prefixe (pl. `blog/`) megjelenjen-e előtte.
- Capability Type: Meghatározza, hogy milyen felhasználói jogosultságokkal kell rendelkeznie valakinek a CPT kezeléséhez. Alapértelmezetten `post` (bejegyzés), ami a legtöbb esetben megfelelő.
- Supports: Ez a talán legfontosabb rész! Itt jelölheted be, hogy milyen WordPress funkciókat támogasson a CPT szerkesztőfelülete. Például:
- `Title` (cím)
- `Editor` (tartalomszerkesztő)
- `Thumbnail` (kiemelt kép)
- `Excerpt` (kivonat)
- `Custom-fields` (egyedi mezők, bár ehhez ACF ajánlott)
- `Page-attributes` (oldal attribútumok, pl. szülő oldal, sablon)
- `Comments` (hozzászólások)
- `Revisions` (változatok)
- `Author` (szerző)
A „Portfólió” típusnál érdemes bejelölni a `Title`, `Editor`, `Thumbnail`, `Excerpt` és `Custom-fields` opciókat.
- Built-in Taxonomies: Itt adhatod hozzá az alapértelmezett WordPress taxonómiákat (kategóriák, címkék) a CPT-hez. Általában jobb egyedi taxonómiákat létrehozni, de ha mégis szükséged van rá, itt megteheted.
- Add Post Type: Miután mindent beállítottál, kattints az „Add Post Type” gombra. Gratulálok! Most már látnod kell a „Portfóliók” menüpontot a WordPress admin felületén, ahol hozzáadhatod az új portfólió elemeidet.
2. Módszer: Kód segítségével (A fejlesztők útja)
A kódolásos módszer sokkal nagyobb kontrollt biztosít, és a legjobb gyakorlatnak számít, ha a projekt komolyan veszi a testreszabást, a teljesítményt és a skálázhatóságot. A **Custom Post Type-okat** a `register_post_type()` WordPress függvénnyel lehet létrehozni.
Hol helyezd el a kódot? Soha ne közvetlenül a téma (theme) `functions.php` fájljába írj bele, mert egy témafrissítés felülírhatja a változtatásaidat. A legjobb megoldás a **gyermek téma** (child theme) `functions.php` fájlja, vagy még professzionálisabb megközelítés egy egyedi plugin létrehozása a CPT-hez.
Íme egy példa kód egy „Portfólió” CPT létrehozására:
<?php
function create_custom_post_type_portfolio() {
$labels = array(
'name' => _x( 'Portfóliók', 'Post Type General Name', 'your-text-domain' ),
'singular_name' => _x( 'Portfólió', 'Post Type Singular Name', 'your-text-domain' ),
'menu_name' => __( 'Portfóliók', 'your-text-domain' ),
'name_admin_bar' => __( 'Portfólió', 'your-text-domain' ),
'archives' => __( 'Portfólió Archívum', 'your-text-domain' ),
'attributes' => __( 'Portfólió Attribútumok', 'your-text-domain' ),
'parent_item_colon' => __( 'Szülő Portfólió:', 'your-text-domain' ),
'all_items' => __( 'Összes Portfólió', 'your-text-domain' ),
'add_new_item' => __( 'Új Portfólió Hozzáadása', 'your-text-domain' ),
'add_new' => __( 'Új hozzáadása', 'your-text-domain' ),
'new_item' => __( 'Új Portfólió', 'your-text-domain' ),
'edit_item' => __( 'Portfólió Szerkesztése', 'your-text-domain' ),
'update_item' => __( 'Portfólió Frissítése', 'your-text-domain' ),
'view_item' => __( 'Portfólió Megtekintése', 'your-text-domain' ),
'view_items' => __( 'Portfóliók Megtekintése', 'your-text-domain' ),
'search_items' => __( 'Portfólió Keresése', 'your-text-domain' ),
'not_found' => __( 'Nincs találat', 'your-text-domain' ),
'not_found_in_trash' => __( 'Nincs találat a kukában', 'your-text-domain' ),
'featured_image' => __( 'Kiemelt Kép', 'your-text-domain' ),
'set_featured_image' => __( 'Kiemelt kép beállítása', 'your-text-domain' ),
'remove_featured_image' => __( 'Kiemelt kép eltávolítása', 'your-text-domain' ),
'use_featured_image' => __( 'Kiemelt kép használata', 'your-text-domain' ),
'insert_into_item' => __( 'Beillesztés a portfólióba', 'your-text-domain' ),
'uploaded_to_this_item' => __( 'Feltöltve ehhez a portfólióhoz', 'your-text-domain' ),
'items_list' => __( 'Portfóliók listája', 'your-text-domain' ),
'items_list_navigation' => __( 'Portfóliók listájának navigációja', 'your-text-domain' ),
'filter_items_list' => __( 'Portfóliók szűrése', 'your-text-domain' ),
);
$args = array(
'label' => __( 'Portfólió', 'your-text-domain' ),
'description' => __( 'Weboldal portfólió elemei', 'your-text-domain' ),
'labels' => $labels,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'custom-fields', 'page-attributes' ),
'hierarchical' => false, // Igaz, ha hierarchikus (pl. oldalak), hamis, ha nem (pl. bejegyzések)
'public' => true, // Látható-e a frontend-en és a backend-en
'show_ui' => true, // Látható-e az admin felületen
'show_in_menu' => true, // Hozzon-e létre menüpontot az admin menüben
'menu_position' => 5, // A menüpont pozíciója (5 az "Bejegyzések" alatt)
'menu_icon' => 'dashicons-images-alt2', // WordPress ikon (dashicons.com)
'show_in_admin_bar' => true, // Látható-e az admin sávban
'show_in_nav_menus' => true, // Hozzáadható-e a navigációs menükhöz
'can_export' => true, // Exportálható-e
'has_archive' => true, // Rendelkezik-e archív oldallal
'exclude_from_search' => false, // Szerepeljen-e a keresési eredmények között
'publicly_queryable' => true, // Lekérdezhető-e a frontendről
'rewrite' => array( 'slug' => 'portfolio', 'with_front' => true ), // URL szerkezet
'capability_type' => 'post', // Jogosultságok
'show_in_rest' => true, // Fontos a Gutenberg szerkesztő és a REST API támogatásához
);
register_post_type( 'portfolio', $args );
}
add_action( 'init', 'create_custom_post_type_portfolio', 0 );
?>
A kód magyarázata:
- `create_custom_post_type_portfolio()`: Ez a funkció tartalmazza a CPT regisztrálásához szükséges logikát.
- `$labels`: Egy tömb, amely a CPT admin felületen megjelenő címkéit és szövegeit tartalmazza. Ezek segítik a felhasználókat az eligazodásban. A `_x()` és `__()` függvények a lokalizációhoz kellenek, így a CPT-d többnyelvűvé tehető. Ne felejtsd el módosítani a `your-text-domain` részt a saját téma vagy plugin szöveg tartományára!
- `$args`: Egy tömb, amely a CPT összes beállítását tartalmazza.
- `label` és `description`: Általános leírás a CPT-ről.
- `labels`: Ide adhatod át az `$labels` tömböt.
- `supports`: Itt adhatod meg, hogy milyen szerkesztőfelületi elemeket támogasson a CPT (pl. `title`, `editor`, `thumbnail`).
- `hierarchical`, `public`, `show_ui`, `show_in_menu`, `has_archive` stb.: Ezek a beállítások ugyanazt jelentik, mint a CPT UI pluginban leírtak.
- `menu_position`: Számmal adhatod meg a menüpont pozícióját. (pl. 5 = bejegyzések alatt, 10 = média alatt).
- `menu_icon`: Választhatsz egy WordPress Dashicon ikont, ami vizuálisan megkülönbözteti a CPT-t az admin menüben. (Lásd: Dashicons)
- `rewrite`: Ez a beállítás az URL struktúráját szabályozza. A `slug` adja meg a permalink előtagját (pl. `portfolio`).
- `show_in_rest`: Fontos, ha a Gutenberg szerkesztőt szeretnéd használni a CPT-hez, vagy ha a WordPress REST API-n keresztül szeretnél adatokat lekérdezni.
- `register_post_type( ‘portfolio’, $args );`: Ez a függvény regisztrálja a CPT-t. Az első paraméter az egyedi azonosító (slug), a második pedig a beállításokat tartalmazó `$args` tömb.
- `add_action( ‘init’, ‘create_custom_post_type_portfolio’, 0 );`: Ez a sor gondoskodik arról, hogy a CPT regisztrálása a WordPress inicializálási fázisában megtörténjen. A `0` a prioritást jelöli.
Fontos megjegyzés a kódolás után: Miután hozzáadtad vagy módosítottad a `rewrite` szabályokat egy CPT-hez (akár pluginnal, akár kóddal), frissítened kell a permalink szabályokat. Ehhez menj a WordPress admin felületén a „Beállítások” -> „Permalinkek” menüpontra, és kattints a „Változtatások mentése” gombra (anélkül, hogy bármit módosítanál). Ezzel a WordPress „kiüríti” (flush) és újraépíti a permalink szabályokat, így az új CPT URL-ek működni fognak.
Miután létrehoztad a CPT-t: Mi a következő lépés?
A CPT létrehozása csak az első lépés. Ahhoz, hogy valóban kiaknázd a benne rejlő potenciált, további elemeket kell hozzáadnod és konfigurálnod:
1. Egyedi Taxonómiák Hozzáadása
Ahogy a bejegyzésekhez vannak kategóriák és címkék, úgy a CPT-khez is létrehozhatsz saját, specifikus besorolási rendszereket. Ezeket hívjuk **egyedi taxonómiáknak**. Egy „Portfólió” CPT-hez például létrehozhatsz egy „Projekt Típus” taxonómiát (pl. webdesign, mobil app, branding), vagy egy „Ügyfél” taxonómiát.
Taxonómiákat is létrehozhatsz pluginnal (CPT UI) vagy kóddal a `register_taxonomy()` függvény segítségével. Ha CPT UI-t használsz, van egy külön menüpont a Taxonómiák hozzáadására/szerkesztésére, ahol megadhatod a slugot, címkéket és hozzárendelheted a létrehozott CPT-dhez.
2. Egyedi Mezők (Custom Fields) Hozzáadása
Az **egyedi mezők** (gyakran „meta boxoknak” is nevezik őket) a CPT-k valódi erejét adják. Ezekkel olyan specifikus adatokat tárolhatsz, amelyek nem illenek a hagyományos cím és tartalom mezőbe. Egy „Portfólió” elemhez például szükség lehet:
- Projekt URL
- Ügyfél neve
- Befejezés dátuma
- Technológiák listája
Az **Advanced Custom Fields (ACF)** plugin a de facto szabvány az egyedi mezők kezelésére WordPressben. Nagyon intuitív felületet biztosít a mezőcsoportok létrehozásához, és egyszerűen hozzárendelheted őket a CPT-dhez. Ha kódolással szeretnéd megvalósítani, akkor a WordPress Meta API-t kell használnod.
3. Tartalom megjelenítése (Sablonok)
Miután létrehoztad a CPT-t, hozzáadtál elemeket, egyedi taxonómiákat és mezőket, már csak meg kell jeleníteni őket a weboldalon. Ehhez a **WordPress sablonhierarchiáját** kell megértened. A WordPress keres egy specifikus nevű fájlt a témádban a CPT-k megjelenítéséhez:
- Archív oldalhoz (az összes CPT elem listája): `archive-{post_type}.php` (pl. `archive-portfolio.php`). Ha ez nem létezik, akkor a `archive.php`, majd az `index.php` lesz a fallback.
- Egyedi CPT elem oldalhoz (egy adott elem részletes nézete): `single-{post_type}.php` (pl. `single-portfolio.php`). Ha ez nem létezik, akkor a `single.php`, majd az `index.php` lesz a fallback.
Ezekben a sablonfájlokban használhatod a **WordPress Loop-ot** és a `WP_Query` osztályt a CPT-k elemeinek lekérdezésére és megjelenítésére. Például, az `archive-portfolio.php` fájlban lekérdezheted az összes portfólió elemet, és listázhatod őket.
SEO és a Custom Post Type-ok
A **Custom Post Type-ok** használata komoly **SEO** előnyökkel járhat, ha helyesen alkalmazzuk:
- URL struktúra: Ahogy említettük, tiszta, releváns URL-eket hozhatsz létre, amelyek segítenek a keresőmotoroknak megérteni a tartalom témáját.
- Rich Snippets/Schema Markup: A CPT-k ideálisak arra, hogy strukturált adatokat (Schema Markup) adjunk hozzá a tartalmakhoz. Például egy „Termék” CPT-hez hozzáadhatod a `Product` schema-t az árról, értékelésekről, készletről, ami látványosabb találati megjelenést eredményezhet a Google-ben.
- Egyedi meta adatok: Az olyan SEO bővítmények, mint a Yoast SEO vagy a Rank Math, lehetővé teszik, hogy egyedi címeket, meta leírásokat és Open Graph adatokat adj meg minden egyes CPT-hez és annak archív oldalához. Ez precízebb irányítást biztosít a keresőoptimalizálás felett.
- Tartalom relevancia: A CPT-kkel való strukturált tartalomkezelés javítja a weboldal tematikus relevanciáját, ami a keresőmotorok számára vonzóbbá teszi az oldalt.
Tippek és bevált gyakorlatok
- Ne ess túlzásba: Csak akkor hozz létre CPT-t, ha valóban egy új, strukturált tartalomtípusról van szó, ami nem illeszkedik a meglévő bejegyzés- vagy oldaltípusokhoz. Ne használj CPT-t, ha egy egyszerű kategória is megtenné.
- Használj egyedi, beszédes slugokat: A CPT slugja legyen rövid, lényegre törő és tükrözze a tartalom típusát (pl. `termek`, `szolgaltatas`, `esemeny`). Kerüld a konfliktusokat a meglévő WordPress slugokkal.
- Kezeld a képességeket (capabilities): Gondold át, hogy mely felhasználói szerepköröknek legyen joga szerkeszteni, törölni vagy publikálni a CPT-hez tartozó elemeket. Ezt a `capability_type` és `map_meta_cap` paraméterekkel szabályozhatod.
- Tesztelj alaposan: Különösen kódolásos megvalósítás esetén győződj meg róla, hogy a CPT megfelelően működik minden környezetben és nem okoz konfliktust más bővítményekkel.
- Gondolj a jövőre: A CPT-k tervezésekor vedd figyelembe a weboldalad jövőbeli bővítési lehetőségeit. Legyenek elég rugalmasak ahhoz, hogy később is könnyen fejleszthetők legyenek.
- Használj gyermek témát (Child Theme): Ha kódolással adsz hozzá CPT-ket, mindig gyermek témát használj, hogy a témafrissítések ne írják felül a módosításaidat. Alternatívaként egy egyedi plugin is szóba jöhet.
Konklúzió
A **Custom Post Type-ok** a **WordPress** erejének és rugalmasságának egyik sarokkövei. Lehetővé teszik számodra, hogy a tartalomkezelő rendszert pontosan a saját projektjeid egyedi igényeire szabd, legyen szó egy webáruházról, egy online magazinról vagy egy komplex portfólióoldalról. Segítségükkel a tartalom nemcsak rendezettebb és könnyebben kezelhető lesz az admin felületen, hanem a fejlesztők is hatékonyabban tudnak majd dolgozni, és a látogatók is jobb felhasználói élményben részesülnek.
Akár a kényelmes plugin-os utat választod, akár a nagyobb kontrollt nyújtó kódolásos megközelítést, a CPT-k elsajátítása egy új kaput nyit meg előtted a WordPress világában. Ne habozz kipróbálni, és fedezd fel, hogyan emelheted weboldaladat a következő szintre!
Leave a Reply