it-swarm.com.de

Wordpress-Slug-Problem mit nicht-lateinischen Zeichen

Ich verwende Permalinks in WP als: domain.com/category/post_name

Das Problem ist, dass Post-Namen nicht-lateinische Zeichen haben, wie z. B. Chinesisch, Hebräisch und Arabisch . Es codiert sie also in eine Art: %20%18%6b%20, daher zählt es jedes Zeichen eines Symbols als ein tatsächliches Zeichen, was zu einer dreifachen Länge führt, die einige sehr kurze Butzen abschneidet.

Wie kann man das beheben? Oder wie kann man das Längenlimit zumindest verlängern? Ich habe versucht, die Länge des Datenbankfelds "post_name" von 200 auf 500 zu verlängern, aber es wird immer noch kurz gekürzt.

7
Ryan

Permalinks wie http://example/שָׁלוֹם funktionieren tatsächlich in meinem WordPress 3.3. Könnten die Verbesserungen von remove_accents () für i18n-Permalinks sein .

Wie Sean & Steve feststellten,

  • stellen Sie sicher, dass Sie WordPress verwenden ≥ 3.3
  • stellen Sie sicher, dass Ihre .htaccess-Datei eine Regel enthält, die RewriteRule . /index.php [L] ähnelt.
  • stellen Sie sicher, dass Ihre Datenbank UTF-8-codiert ist (und ggf. nach UTF-8 konvertieren ).

[Meine ursprüngliche Antwort folgt, jetzt nicht so relevant, aber vielleicht immer noch nützlich:]

Sehen

Wenn Ihre Post-Titel ASCII Zeichen enthalten, können Sie Nicht-ASCII-Zeichen beim Generieren von Post-Slugs entfernen .

Einige Plugins können helfen:

  • http://wordpress.org/extend/plugins/strings-sanitizer/

    Bereinigt Titel während des Uploads aggressiv auf saubere, SEO-freundliche Post-Slugs und Mediendateinamen. Konvertiert gängige akzentuierte UTF-8-Zeichen sowie einige kyrillische, hebräische, spanische und deutsche Sonderzeichen.

  • http://wordpress.org/extend/plugins/universal-slugs/

    […] Wenn Sie eine Sprache sprechen, die Zeichen verwendet, die nicht im englischen Alphabet enthalten sind, müssen Sie entweder massive, merkwürdig aussehende Permalinks ertragen oder jedes einzelne manuell aktualisieren, wenn Sie einen Beitrag oder eine Seite schreiben. […] Das Plugin entfernt außerdem gebräuchliche Wörter wie "und", "και", "το", "the" usw. aus den URLs, da sie lediglich zur URL-Länge beitragen, ohne die Bedeutung oder das zu ergänzen SEO-Wert.

  • http://wordpress.org/extend/plugins/pinyin-slug/

    Wenn Sie beispielsweise einen Beitrag mit folgendem Titel veröffentlichen: "Chinese PinYin" Wordpress weist Ihrem Beitrag automatisch einen langen Dateinamen zu, der als Post-Slug bezeichnet wird: /%e4%b8%ad%e6%96%87%e6%8b%bc%e9%9f%b3 […] Mit aktiviertem Chinese PinYin-Plugin die Slug für unseren Beispiel-Blog-Beitrag würde so aussehen: /zhongwenpinyin

  • http://wordpress.org/extend/plugins/remove-utf-8-from-slug/

    entferne alle UTF-8 vom Titel zum Permalink

  • http://wordpress.org/extend/plugins/pinyin-seo/

    Konvertieren Sie chinesische Zeichen in Pinyin Permalinks.

Einige der mehrsprachigen Plugins können Ihre Slugs möglicherweise automatisch in englische (und daher nur in lateinische) Zeichen übersetzen, ich habe jedoch keines davon verwendet, daher bin ich mir nicht sicher.

8
sam

Abgesehen von der Bereinigung besteht die einzige Möglichkeit, die Länge der Schnecke zu verlängern, darin, den Code WP zu ändern

in der Datei wp-includes/formatting.php:

200 entsprechend ersetzen:

$title = utf8_uri_encode($title, 200);

in Datei: wp-includes/post.php suche nach 3 Zeilen mit:

$alt_post_name = substr( $slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";

Das Problem wird Sie bei jedem WP Update verfolgen

2
Jacek Kaniuk