5

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

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

それを修正する方法は?または、少なくとも長さ制限を少なくとも拡張する方法は?データベースフィールド「post_name」の長さを200から500に拡張しようとしましたが、まだ切り捨てられています。

4

5 に答える 5

2

Wordpress は、投稿のスラッグをそのようにエンコードするべきではありません。クライアントのタイトルとスラッグには常に utf8 文字を使用しています。それは正常に動作します。

データベース テーブルの文字セットが utf8 であることは確かですか? もしそうなら、それはいずれかの列で上書きされましたか? wp-config.phpこちらもチェックdefine('DB_CHARSET', 'utf8');

また、プラグインを無効にして、パーマリンクを再度テストします。プラグインの 1 つが投稿のスラッグを台無しにしている可能性があります。

于 2012-05-11T17:43:40.873 に答える
2

post_nameフィルタを適用して変更できますsanitize_title...
短い例:

add_filter('sanitize_title', 'sanitize_title_custom', 10, 3);
function sanitize_title_custom($title, $raw_title, $context){
    // do some proccesing with title or raw_title
    // assign new result to $title ($title = str_replace(" ","-", $raw_title);// as example )
    return $title;
}

ただし、注意してください...悪いサニタイズはセキュリティリスクになる可能性があります...SQLインジェクションなど...

于 2012-05-11T13:32:23.033 に答える
1

これは私も苛立たせる一般的な状況です。

このプラグインを確認してください。トランクをきれいにする

  1. プラグイン設定ページで最大URL長を設定できます。(デフォルト:35文字。)
  2. また、提供されているストップワードリストを編集するオプションもあります。

これがお役に立てば幸いです。乾杯 !!!

于 2012-05-10T16:08:55.583 に答える
0

英語以外の URL の場合: fcgi で IIS を使用していますが、英語以外のスラッグの解決策を Web のさまざまな場所で見つけました: ヘブライ語の場合: IIS7 URL 書き換えとシンボルの詳細については、ここを参照してください。 wp-config.php の末尾に追加する必要がある URL:

    if (isset($_SERVER['UNENCODED_URL']))
$_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];

UNENCODED_URL の詳細はこちら

于 2015-04-02T22:52:36.667 に答える
-2

パーマリンクを作成/保存するときに、これらの悪い文字を削除しないのはなぜですか?

于 2012-05-11T01:17:35.403 に答える