web-dev-qa-db-ja.com

アポストロフィと引用符がパーマリンクに表示されないようにする方法

私はカスタムパーマリンク "/%category%/%postname%/"を使っています。投稿のタイトルに引用符やアポストロフィが含まれていると、それらはURLに表示されます。

誰かが彼らがナメクジに現れないようにする方法を私に言うことができますか?

私はWordPress 3.0.4を実行しています。

6
user1462

WordPressでは、 "---"と " - "はダッシュ( - —)に、 " - "はダッシュ( - #8212;)になります。 sanitize_title_with_dashes() 関数はこれらをキャッチしません。

この関数はデータベースコピーを使用しますが、ユーザーに表示されるタイトルは常にtexturize関数を通ります。そのため、データベースへの途中でen/emダッシュを置き換えると、最終的な結果は同じになり、タイトルが再テキスト化されるというこれらの悪いURLのケースを回避できます。

add_action( 'title_save_pre', 'do_replace_dashes' );
function do_replace_dashes($string_to_clean) {
    # The html entities (–  and —) don’t actually work but I include them for kicks and giggles. 
    $string_to_clean = str_replace( array('—', '—', '–', '–', '‚', '„', '“', '”', '’', '‘', '…'), array(' -- ',' -- ', '--','--', ',', ',,', '"', '"', "'", "'", '...'), $string_to_clean );
    return $string_to_clean;
}
5
editor

私はこの問題を回避するためのプラグインがいくつかあるのを見ました。 Clean URL を確認してください。

この簡単なWordPressプラグインは、記事スラッグ(= URLで使用される記事名)を生成するときに使用されます。文字a〜z、数字、ハイフン( - )以外のすべての文字を削除します。このプラグインは、URL生成プロセス全体の最後のものとして実行されるので、まず発音区別符号とアクセント記号の標準置換がすべて実行され、それでもまだ奇妙な文字がいくつか存在する場合は切り捨てられます。

3
Fernando Briano