web-dev-qa-db-ja.com

ラテン文字以外の文字を含むWordpressのスラグの問題

私はWPのパーマリンクを次のように使用しています:domain.com/category/post_name

問題は、投稿名に 中国語、ヘブライ語、アラビア語 などのラテン文字が含まれていないことです。そのため、それらを次のようにエンコードします。%20%18%6b%20したがって、すべてのシンボルの文字を実際の文字として数え、最終的に3倍の長さになり、非常に短いスラッグを切り捨てます。

それを修正するには?それとも、少なくとも長さ制限を拡張するには?データベースフィールド "post_name"の長さを200から500に拡張しようとしましたが、それでもやはり短くなっています。

7
Ryan

http://example/שָׁלוֹםのようなパーマリンクは実際に私のWordPress 3.3で働いています。 国際化パーマリンクのためのremove_accents()の改善 かもしれません。

ショーンとスティーブが指摘したように、

  • wordPress≧3.3を使用していることを確認してください
  • .htaccessファイルにRewriteRule . /index.php [L]のような規則が含まれていることを確認してください。
  • データベースがUTF-8でエンコードされていることを確認してください(そうでない場合は UTF-8への変換を検討してください )。

[私の最初の答えは以下の通りで、あまり関連性はありませんが、それでも役に立つかもしれません:]

見る

投稿タイトルにASCII文字が含まれている場合は、 投稿スラッグを生成するときに非ASCII文字を削除する を使用できます。

いくつかのプラグインは助けるかもしれません:

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

    アップロード中に、きれいでSEOに優しいポストスラッグ、およびメディアファイル名のタイトルを積極的にサニタイズします。一般的なアクセント付きUTF-8文字、およびいくつかの特殊なキリル文字、ヘブライ語、スペイン語、およびドイツ語の文字を変換することによって機能します。

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

    […]英語のアルファベットに含まれていない、文字を使った言語を話す場合、大量の奇妙なパーマリンクを用意するか、投稿やページを書くたびに手動で更新する必要があります。 […]プラグインはまた、URLから "and"、 "και"、 "το"、 "the"などの一般的な単語を削除します。 SEO値.

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

    たとえば、次のようなタイトルの投稿を公開すると、 "Chinese PinYin" Wordpressは投稿スラッグと呼ばれる長いファイル名を自動的にあなたの投稿に割り当てます。/%e4%b8%ad%e6%96%87%e6%8b%bc%e9%9f%b3このようになります:/zhongwenpinyin

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

    固定リンクへのタイトルからすべてのUTF-8を削除

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

    漢字をピンインパーマリンクに変換します。

また、多言語プラグインの中にはスラッグを自動的に英語(そしてラテン語のみの文字)に翻訳できるものもありますが、私はそれらのどれも使ったことがないので、よくわかりません。

8
sam

サニタイズの他に、スラグの長さを延ばす唯一の方法はWP codeを修正することです

wp-includes/formatting.phpファイル内:

それに応じて200を置き換えます。

$title = utf8_uri_encode($title, 200);

ファイル内:wp-includes/post.phpで3行検索:

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

WPを更新するたびに、問題があなたを突き止めるでしょう

2
Jacek Kaniuk