# Egyedi bejegyzéstípusok archívum-slugjának fordítása

> Hogyan lesz fordítható egy kézzel regisztrált egyedi bejegyzéstípus archívum-slugja, és mit nézz meg, ha a fordított slug 404-es hibát ad.

Ha egy egyedi bejegyzéstípust kézzel regisztrálsz (`register_post_type()`), a `has_archive` paraméterrel külön archívum-slugot is megadhatsz. Az, hogy ezt hogyan állítod be, dönti el, hogy a slug lefordítható lesz-e a másodlagos nyelven.

A WPML engedi, hogy a `has_archive` szöveg legyen. Ha viszont ez a szöveg eltér a `rewrite['slug']` értékétől, vagy az egyedi típus slugja nincs megadva, az archívum-slug nem lesz fordítható.

## Fordítható slug

Állítsd a `has_archive` értékét `true`-ra, és add meg a `rewrite` slugot. Ha a `book` slugot spanyolra `libro`-ra fordítod, az archívum címei így alakulnak:

- alapnyelv (angol): `http://mydomain.tld/book/`
- másodlagos nyelv (spanyol): `http://mydomain.tld/es/libro/`

```php
add_action( 'init', 'create_post_type' );
function create_post_type() {
   register_post_type( 'book',
      array(
         'labels' => array(
            'name' => __( 'Books', 'textdomain' ),
            'singular_name' => __( 'Book', 'textdomain' )
         ),
         'public' => true,
         'has_archive' => true,
         'publicly_queryable' => true,
         'exclude_from_search' => false,
         'show_ui' => true,
         'show_in_menu' => true,
         'query_var' => true,
         'rewrite' => array( 'slug' => 'book' ),
         'supports' => array( 'title', 'editor', 'custom-fields', 'thumbnail' )
      )
   );
}
```

## Ugyanaz a slug minden nyelven

Ha az archívum-slug minden nyelven egyezzen, add meg a `has_archive` értékének a kívánt szöveget, például `'has_archive' => 'my-books'`. Ekkor az archívum címei:

- alapnyelv: `http://mydomain.tld/my-books/`
- másodlagos nyelv: `http://mydomain.tld/es/my-books/`

A `has_archive` paraméterhez ne használj gettext-függvényt (`__()`), csak sima szöveget írj.

```php
add_action( 'init', 'create_post_type' );
function create_post_type() {
   register_post_type( 'book',
      array(
         'labels' => array(
            'name' => __( 'Books', 'textdomain' ),
            'singular_name' => __( 'Book', 'textdomain' )
         ),
         'public' => true,
         'has_archive' => 'my-books', // ehhez ne használj gettext-függvényt
         'publicly_queryable' => true,
         'exclude_from_search' => false,
         'show_ui' => true,
         'show_in_menu' => true,
         'query_var' => true,
         'rewrite' => array( 'slug' => 'book' ),
         'supports' => array( 'title', 'editor', 'custom-fields', 'thumbnail' )
      )
   );
}
```

## Ha az egyedi slug 404-es hibát ad

Egyes témák és bővítmények lehetővé teszik, hogy az oldal adminisztrátora maga állítsa be az egyedi típusok és taxonómiák slugját. Ha a lefordított egyedi slug 404-es hibát ad, ellenőrizd a következőket:

- Az egyedi típust minden kérésnél ugyanazzal a slugkal kell regisztrálni: nyelvenként, a frontenden, az adminban, AJAX-kérésnél, heartbeatnél is. A `'rewrite' => [ 'slug' => $my_custom_slug ]` sorban a `$my_custom_slug` értéke nem változhat kérésről kérésre, akkor sem, ha egy opcióból vagy más egyedi beállításból jön.
- A WPML csak az egyedi slug fordítását támogatja (amikor a típus regisztrálva van), az egyedi közvetlen hivatkozás-szerkezetet (permalink structure) nem.
- Ha az egyedi slug opcióként van tárolva, ne regisztráld `admin-texts` elemként a `wpml-config.xml` fájlban.
- A slug értékének módosítása után a téma vagy a bővítmény hívja meg a `flush_rewrite_rules();` függvényt is.
