Mit WPML können Sie eindeutige URLs für benutzerdefinierte Inhalte in verschiedenen Sprachen benutzen. Dazu gehört die Übersetzung des Beitrags-Slugs, ebenso wie der Name des benutzerdefinierten Beitragstyps.
Zu den URLs für benutzerdefinierte Beitragstypen gehören der Name des Beitragstyps und der Seitenname. Für gewöhnlich sehen benutzerdefinierte Beitragstypen in anderen Sprachen so aus:
- /houses/my-green-house/
- /casas/mi-casa-verde/
Der erste Teil der URL, in fett, ist der Beitragstyp. Der zweite Typ ist der Seitenname.
Um Seitennamen zu übersetzen, klicken Sie auf den Bearbeiten-Button neben dem Permalink-Feld im Beitrags-Editor. Da WPML für jede Sprache einen anderen Beitrag benutzt, können Sie die Namen individuell einstellen.
Übersetzung der Namen benutzerdefinierter Beitragstypen
Um es WPML zu erlauben, die Namen benutzerdefinierter Beitragstypen zu übersetzen, müssen Sie das String Translation-Modul verwenden.
Definieren benutzerdefinierter Beitragstypen in PHP
Wenn Sie benutzerdefinierte Beitragstypen manuell über PHP registrieren, erkennt WPML diese Abrufe und registriert den Slug zur Übersetzung.
Definieren benutzerdefinierter Beitragstypen mit Types
Um ohne PHP benutzerdefinierte Beitragstypen zu definieren, können Sie unser Types-Plugin verwenden. Types definiert benutzerdefinierte Beitragstypen automatisch, sodass Sie sie in WPML übersetzen können.
Gehen Sie auf Types und bearbeiten Sie einen benutzerdefinierten Beitragstyp. Wenn dieser nicht für Namensübersetzung aktiviert ist, sehen Sie einen Link zu WPMLs Einrichtungsbildschirm:
Aktivierung der Lokalisierung des Namens benutzerdefinierter Beitragstypen in WPML
Gehen Sie als nächstes auf WPML -> Einstellungsseite. Dort sehen Sie einen neuen Abschnitt für die Lokalisierung von Slugs.
Die Checkliste zur Aktivierung der Lokalisierung von Namen benutzerdefinierter Beitragstypen:
1. Machen Sie den benutzerdefinierten Beitragstyp übersetzbar
2. Aktivieren Sie Slug-Übersetzung für die Seite
3. Wählen Sie aus, dass in verschiedenen Sprachen verschiedene Slugs benutzt werden sollen
Jetzt sind Sie bereit, die Namen benutzerdefinierter Beitragstypen zu übersetzen. Geben Sie die Übersetzungen ein und drücken Sie auf Speichern, dann sollten sie in den URLs erscheinen.
Übersetzung benutzerdefinierter Beitragstyparchive
Wenn Sie benutzerdefinierte Beitragstypen manuell registrieren, können Sie in WordPress einen eigenen Archiv-Slug einstellen, nutzen Sie dazu:
has_archive
Ab Version 3.2 erlaubt WPML das Setzen von has_archive
in einem String. Wenn der String-Wert jedoch auf etwas anderes als rewrite['slug'],
eingestellt ist, oder der Slug des benutzerdefinierten Beitragstypsnamens nicht eingestellt ist, wird der Archiv-Slug nicht übersetzbar sein.
Beispiel Code 1:
In diesem Code-Beispiel haben wir 'has_archive' => true
eingestellt. Wenn wir annehmen, dass der englische Slug book im Spanischen in libro übersetzt wurde, befinden sich die Archivlinks hier:
- Englisch (Voreingestellte Sprache): http://mydomain.tld/book/
- Spanisch (Zweitsprache): 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') ) ); }
Beispiel Code 2:
In diesem Code-Beispiel haben wir einen bestimmten String für den Parameter 'has_archive' => 'my-books'
eingestellt. Die Archivlinks sind nun wie folgt:
- Englisch (voreingestellte Sprache): http://mydomain.tld/my-books/
- Spanisch (Zweitsprache): http://mydomain.tld/es/my-books/
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', // Nutzen Sie für diesen Parameter nicht die gettext-Funktionen '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') ) ); }