1

私の WordPress ブログでは、新規投稿フォームの「説明」フィールドに次の内容を挿入しました。

sss'ss''ss'''ss"ss""sss"""

以下のようにフィルターフック(add_filter) the_content() 関数を適用しています。基本的には、50 文字を超える単語が存在する場合は、間隔のない単語を表示したいので、50 文字の後にスペースを空けたいと考えています。そこで、 wordwrap関数を使用してそれを行いました。ただし、コンテンツに特殊文字を使用している間、以下に示すように有線出力が得られます。

関数.php

function filter_content($content) {
  global $post;  
     $original = wordwrap($content,50,' ',' ' ); 
  return $original;
}
add_filter( 'the_content', 'filter_content' );

出力:

   sss’ss”ss”’ss”ss& #8221;"sss”"”
4

1 に答える 1

1

問題:

wordwrap関数は、特別なチャーター (引用符、二重引用符など) を html エンティティに変換し、文字列としてカウントし ます& #8221;として出力されたことを分割します。.

解決:

PHP の代わりに、css ソリューションの word-wrapプロパティを試してみてください。したがって、word-wrap:break-word; を適用します。スタイルを段落タグに追加します。break-word 値は単語を強制的に分割します。しかし、50 などの数字を指定するオプションはありません。コンテナの幅に応じてラップします。

p{
 word-wrap:break-word; 
}
于 2012-11-30T11:05:10.660 に答える