Tovább a tartalomhoz

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ó.

Á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/
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' )
)
);
}

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.

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' )
)
);
}

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.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások