• 解決済 popup

    (@popup)


    いつも利用させていただいています。
    バグではないかと思う動作があったので、ご確認よろしくお願いします。

    フォーラム » 使い方全般 » the_excerpt() で表示される &nbspで質問がありましたが、’the_excerpt()’あるいは’get_the_excerpt()’で抜粋を本文から抜き出して表示した時に、’ ’が残っていると抜き出した文字数によっては’&n’や’&n’のように一部だけ表示されてしまう場合があります。

    ‘wp-includes/formatting.php’にある’wp_trim_words()’関数で、指定文字数によるトリムを行う前、’wp_strip_all_tags()’を実行する直前または直後で’ ’を削除するか、あるいは通常の半角スペースに変換してはどうでしょうか?

    wp-includes/formatting.php(2452行目に追加)

    $text = str_replace( ' ', '', $text );
    	$text = wp_strip_all_tags( $text );

    あるいは

    $text = str_replace( ' ', ' ', $text );
    	$text = wp_strip_all_tags( $text );

    単語間などで意図的に’ ’を入力している場合も考慮すれば、通常の半角スペースに変換の方が良いでしょうか?
    動作確認と必要でしたらプロジェクトへのご報告もよろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは、

    ちゃんと検証はしていないんですけど、少なくても本家版のバグではないと思います。

    英文の場合のexcerpt は、標準55単語で切り捨てられるようになっていますよね。

     は、前のスレッドのフィルターで半角空白+ でフィルタしている通り、

    単語として切り取られることはあっても、&nbなどという形で残ることはないと思います。

    可能性があると思われるのは、日本語環境での文字の丸めがどのように動作しているのかを判断しないといけないのですが、前の質問者の方には、マルチバイトパッチプラグインを使用しているかどうかなどを聞いていないので、何とも言えないところです。

    トピック投稿者 popup

    (@popup)

    日本語版を利用している場合に発生しますが、’word count’が’characters’の処理も本家版で行っていて、かつ日本語版でも変更がないので、本家版のバグという解釈で良いと思います。

    WordPress › 日本語 « WordPress 日本語版について

    wp-content/languages/ja.po (Line:2186)

    #: wp-includes/formatting.php:2455 wp-includes/script-loader.php:374
    msgctxt "word count: words or characters?"
    msgid "words"
    msgstr "characters"

    マルチバイトの言語版なら他にも’characters’がデフォルトになっているケースがあると思います。

    WP Multibyte Patchはデフォルトで’characters’が設定されます。
    tk5さんはマルチサイトとして利用していて、日本語サイトで有効化しているようです。
    http://ja.forums.wordpress.org/topic/131926?replies=9#post-181542

    使用しているテーマ:独自テーマ(2ヶ国語・マルチサイト)
    プラグイン「WP Multibyte Patch」は日本語サイトで有効化

    日本語版をデフォルトで利用した場合は’wp-content/languages/ja.po’により、WP Multibyte Patchを利用した場合もデフォルトでそれぞれ’characters’が設定されるので、動作自体はプログラムされた通りに動いてます。

    日本語版を利用している場合に発生しますが、’word count’が’characters’の処理も本家版で行っていて、かつ日本語版でも変更がないので、本家版のバグという解釈で良いと思います。

    あ、そうなんですか 英語版 日本語版ともに、&Nbで表示される文字列と改行のパターンが存在するんですね。

    失礼しました

    トピック投稿者 popup

    (@popup)

    次のチケットが見つかりましたが、空の段落の’ ’は削除されるように4.0で修正予定みたいです。

    Remove   from an empty paragraphs inside the visual editor

    テキストモードで単語間などに手動入力する人はほとんどいないと思うので、この問題は新バージョンでほぼ解決すると思います。

    nobitaさん、トピックへの参加ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「'the_excerpt()'、'get_the_excerpt()'での表示不具合」には新たに返信することはできません。