# Egyéni séma JSON-LD-ben

> Saját JSON-LD séma beillesztése, a használható dinamikus változók, a tiltott egyedi mezők és az idézőjel nélküli változók.

Ha a beépített típusok egyike sem felel meg, saját sémát is írhatsz JSON-LD-ben. Egyéni sémát kézi és automatikus sémaként is használhatsz: a metaboxban, illetve a **SEO → Sémák** oldalon.

## Egyéni séma felvétele

1. Ugyanúgy adj hozzá sémát, mint bármelyik más típusnál, de a sématípusnál válaszd az **Egyéni** lehetőséget.
2. Megjelenik egy szövegmező, ahová beírhatod vagy beillesztheted a sémát.
3. Ne felejtsd el a `<script>` címkét, lásd a példát lent.

```html
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "%%sitetitle%%",
  "url": "%%post_url%%"
}
</script>
```

A SEOPress PRO a `<script>` címkén csak a `type="application/ld+json"` attribútumot tartja meg, a többit eltávolítja. Az `id` attribútumot is megtartja, így egy szkript vagy stíluslap megcélozhatja ezt a blokkot.

Sémák keresése: a Google strukturált adattípusokról szóló hivatalos oldalán és a schema.org oldalán.

Közzététel után mindig teszteld a sémát (lásd [Séma bevezetése és tesztelés](https://hub.hellowp.io/hu/plugins/wp-seopress-pro/strukturalt-adatok-bevezetes-es-teszteles/)).

## Használható dinamikus változók

| Változó | Jelentése |
| --- | --- |
| `%%sep%%` | Elválasztó |
| `%%sitetitle%%` | Webhely címe (álnév: `%%sitename%%`) |
| `%%tagline%%` | Alcím (álnév: `%%sitedesc%%`) |
| `%%post_title%%` | A bejegyzés, oldal vagy egyedi típus címe (álnév: `%%title%%`) |
| `%%post_excerpt%%` | Kivonat (álnév: `%%excerpt%%`) |
| `%%post_content%%` | Tartalom / termékleírás |
| `%%post_thumbnail_url%%` | Kiemelt kép URL-je |
| `%%post_url%%` | A bejegyzés URL-je |
| `%%post_date%%` | Közzététel dátuma (álnév: `%%date%%`) |
| `%%post_modified_date%%` | Módosítás dátuma |
| `%%post_author%%` | Szerző |
| `%%post_category%%` | Kategória: az elsődleges kategória, ha van, különben az első |
| `%%post_tag%%` | Címke |
| `%%_category_title%%` | Kategória címe |
| `%%_category_description%%` | Kategória leírása |
| `%%tag_title%%` | Címke címe |
| `%%tag_description%%` | Címke leírása |
| `%%term_title%%` | Kifejezés címe |
| `%%term_description%%` | Kifejezés leírása |
| `%%search_keywords%%` | Keresési kulcsszavak |
| `%%current_pagination%%` | Aktuális oldalszám |
| `%%page%%` | Oldalszám környezettel (például „1. oldal / 4”) |
| `%%cpt_plural%%` | Az egyedi bejegyzéstípus archívumának többes számú neve |
| `%%archive_title%%` | Archívum címe, sima szövegként |
| `%%archive_date%%` | Archívum dátuma: havi archívumnál hónap és év, éves archívumnál az év, napi archívumnál nap, hónap és év |
| `%%archive_date_day%%` | Napi archívum napja |
| `%%archive_date_month%%` | Havi archívum hónapja |
| `%%archive_date_month_name%%` | Havi archívum hónapjának neve |
| `%%archive_date_year%%` | Éves archívum éve |
| `%%_cf_mezo_neve%%` | Egyedi mező bejegyzésből, oldalból, egyedi típusból és taxonómiából (a `mezo_neve` helyére a mező neve kerül) |
| `%%_ct_taxonomia_slug%%` | Egyedi taxonómia kifejezése (a slug helyére például `product_cat`). Az elsődleges kifejezést adja, ha van, különben az elsőt |
| `%%wc_single_cat%%` | A termék kategóriája |
| `%%wc_single_tag%%` | A termék címkéje |
| `%%wc_single_short_desc%%` | A termék rövid leírása |
| `%%wc_single_price%%` | A termék ára |
| `%%wc_single_price_exc_tax%%` | A termék ára adó nélkül |
| `%%wc_sku%%` | A termék cikkszáma |
| `%%currentday%%` | Aktuális nap |
| `%%currentmonth%%` | Aktuális hónap |
| `%%currentmonth_short%%` | Aktuális hónap három betűvel, például „Jan” |
| `%%currentyear%%` | Aktuális év |
| `%%currentdate%%` | Aktuális dátum |
| `%%currenttime%%` | Aktuális idő |
| `%%author_bio%%` | A szerző bemutatkozása |
| `%%author_first_name%%` | A szerző keresztneve |
| `%%author_last_name%%` | A szerző vezetékneve |
| `%%author_website%%` | A szerző weboldala |
| `%%author_nickname%%` | A szerző beceneve |
| `%%_ucf_felhasznaloi_meta%%` | Szerzői meta (a névhelyre a saját kulcs kerül) |
| `%%currentmonth_num%%` | Aktuális hónap számmal |
| `%%target_keyword%%` | Célkulcsszó |

Saját globális változókat hookkal vehetsz fel (lásd a hookok fejezeteit).

## Egyedi mezők és felhasználói meta a sémában

A `%%_cf_%%` és a `%%_ucf_%%` üres értéket ad, ha a kulcs

- alávonással kezdődik (rejtett meta). A `%%_cf_%%` kivételei: a WooCommerce és az The Events Calendar `_sku`, `_price`, `_regular_price`, `_sale_price`, `_stock`, `_stock_status`, `_global_unique_id` (GTIN), `_wc_average_rating`, `_wc_review_count`, `_EventStartDate`, `_EventEndDate`, `_EventCost`, `_EventURL`, `_EventVenueID` és `_EventOrganizerID` mezői továbbra is elérhetők;
- tartalmazza a `token`, `secret`, `password`, `passwd`, `nonce`, `api_key`, `apikey`, `two_factor`, `2fa`, `activation_key`, `capabilities` vagy `user_level` szöveget;
- csak a `%%_ucf_%%`-nél: tartalmazza a `billing_`, `shipping_` vagy `community-events-location` szöveget.

Az Advanced Custom Fields mezői továbbra is működnek, mert az ACF a mező nevén tárolja az értéket. Egy alapból tiltott kulcs kiírásához használd a `seopress_meta_tag_key_is_allowed` szűrőt, például a `_book_isbn` rejtett mezőhöz, amelyet `%%_cf__book_isbn%%`-ként használsz:

```php
add_filter( 'seopress_meta_tag_key_is_allowed', function( $allowed, $key, $type ) {
	if ( 'post' === $type && '_book_isbn' === $key ) {
		return true;
	}

	return $allowed;
}, 10, 3 );
```

## Változók idézőjel nélkül

A változók a JSON beolvasása előtt cserélődnek le. Idézőjelek között szöveget adnak. Idézőjel nélkül számot, listát vagy objektumot is kiadhatnak, például egy JSON-tömböt tároló egyedi mezőt:

```
"workLocation": %%_cf_clinician_locations%%
```

A séma szerkesztőjének élő ellenőrzése (**SEO → Sémák**) elfogadja ezt a szintaxist, és emlékeztet: „Az idézőjel nélküli változóknak minden oldalon érvényes JSON-t kell adniuk, például `[]`-t, ha nincs értékük.” Ha a változó egy oldalon nem ad ki semmit, a tulajdonságnak nincs értéke, és az oldal sémája érvénytelen.

Közzététel után teszteld a sémát, hogy elkerüld a hibákat.
