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
Szekció neve “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/
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
Szekció neve “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.
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
Szekció neve “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-textselemként awpml-config.xmlfá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: