In meinem Thema möchte ich eine Reihe von benutzerdefinierten Beitragstypen und Taxonomien definieren, von denen jeder seinen eigenen benutzerdefinierten Slug hat. Die Basissprache meines Themas ist Englisch, daher werden die Slugs in englischer Sprache sein
Zum Beispiel beim Definieren des Slugs von benutzerdefinierten Artikeln vom Typ "Produkt":
'rewrite' => array( 'slug' => 'product' ),
Gibt es eine Möglichkeit, die "Schnecke" durch PO / MO-Dateien zu übersetzen? kann ich sagen:
'rewrite' => array( 'slug' => __('product', 'mytextdomain') )
oder klappt es nicht Was ist die derzeitige Praxis, um Schnecken zu lokalisieren?
custom-post-types
custom-taxonomy
slug
translation
localization
unvollkommen
quelle
quelle
prensa
mit einem Slug-Set auf aufgerufen wirdprensa
. Unter Verwendung von WPML ist die Seite der Übersetzung so,press
wie sie nicht mehrprensa
sein kann: / de / press / was nichts anzeigt (beachten Sie, dass Sie durch Klicken auf den ES-Link nicht zurück zu / prensa / gelangen). ABER, wenn Sie / de / prensa / besuchen, funktioniert es ...Antworten:
Ich würde nicht versuchen, Ihre Schnecken zu lokalisieren. Geben Sie Ihren Benutzern stattdessen die Möglichkeit, sie zu ändern, indem Sie der Seite mit den Permalink-Einstellungen ein weiteres Feld hinzufügen.
Schließen Sie sich an
load-options-permalink.php
und richten Sie einige Dinge ein, um die$_POST
Daten zu erfassen und Ihre Schnecke zu retten. Fügen Sie der Seite auch ein Einstellungsfeld hinzu.Dann die Rückruffunktion für das Einstellungsfeld:
Wenn Sie dann Ihren Beitragstyp registrieren, greifen Sie nach der Schnecke mit
get_option
. Wenn es nicht vorhanden ist, verwenden Sie Ihre Standardeinstellung.Hier ist der Einstellungsfeldteil als Plugin https://gist.github.com/1275867
BEARBEITEN: Eine weitere Option
Sie können den Slug auch basierend auf den in der
WPLANG
Konstante definierten Werten ändern .Schreiben Sie einfach eine schnelle Funktion, die Daten enthält ...
Holen Sie sich dann den Slug, auf dem Sie Ihren benutzerdefinierten Beitragstyp registrieren.
Die beste Option, IMO, wäre, dem Benutzer eine Option zu geben und solide Standardeinstellungen bereitzustellen:
quelle
wpse30021
?Wenn das nicht geht Warum gehst du nicht einfach so?
quelle
Ich mache genau das in einem Thema, das wir entwickeln. Es ist in 5 verschiedenen Sprachen verfügbar und jede Sprache verfügt über einen übersetzten Satz von Kategorien. Die erste Komponente der URL im Design wird analysiert, um zu bestimmen, welche Sprache im Landessprachenformat verwendet wird:
Und dann werden übersetzte Kategorien als weitere Bestandteile der URL analysiert.
Die URL wird in der
parse_request
Phase analysiert :Dieses Beispiel enthält keine erforderlichen Überprüfungen, sondern dient nur als Beispiel.
Natürlich hat dieser Ansatz auch Nachteile, aber er ermöglicht natürliche URLs in allen Sprachen. Die Hauptnachteile, die ich sehe, sind:
1) Der Permalink-Mechanismus wird nicht verwendet. Dies könnte wahrscheinlich so erweitert werden, dass die richtigen Permalink-Regeln für alle Sprachen generiert werden und parse_request nicht erforderlich ist. Um dies jedoch für alle Sprachen zu tun, müsste eine MO-Datei nach der anderen in einer Schleife geladen werden, und ich nicht weiß wie gut das unterstützt wird.
2) Wenn ein Übersetzer einen Slug ändert, werden die Links ungültig.
quelle
Sie könnten dies in Ihrem versuchen
functions.php
wie hier gesehen
quelle
Ich würde empfehlen, keine Schnecken übersetzbar zu machen .
Die Übersetzung ist für benutzerbezogene Website-Inhalte vorgesehen . Slugs werden intern verwendet und sind über URL-Umschreibungen nur am Rande "öffentlich" - und URLs sollten auch nicht übersetzbar sein.
Also: Lass deine Schnecken in Ruhe, wie du sie definierst. Stellen Sie nur übersetzbare Zeichenfolgen her, die für den öffentlichen Gebrauch bestimmt sind .
quelle