サポート » プラグイン » WordPress Popular Postsのタイトル抜粋がおかしい。。

  • 人気記事を集計する【WordPress Popular Posts】プラグインを使用しています。

    ウィジェットより 専用のWPPウィジェットをおいて、タイトル抜粋をしたいので「Shorten title」のcharacters抜粋数を「50」や「80」にするのですが、、

    例えば抜粋文字数を「50」にしたとき、50文字にも達していない記事タイトルの末尾に「…」と出てしまいます。(抜粋はされていません)

    逆に、100文字程ある記事タイトルは一切抜粋されず、「タイトルタイトルタイトルです。…」と抜粋していないにも関わらず「…」が出てしまいます。

    「WP Multibyte Patch」プラグインは有効化済みで、無効にしたりしても変わりませんでした。

    WordPress Popular Postsのプラグインバージョンは最新にアップデートしています。

    どなたかこの現象の解決になるような手がかりをご存知でないでしょうか?

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • まず、抜粋していなくても末尾に”…”がつくには、プラグインの仕様です。

    となると、
    問題は抜粋文字数が50の場合でも100文字のタイトルが抜粋されない
    という点だけかと思いますが、合っていますでしょうか?

    しかし、私の環境では正しく動作していて何が原因なのかはちょっと分かりませんが・・・
    (ちなみに、50と制限したときにはUTF-8での50バイトで制限されます。)

    munyagu様

    ご返信遅れまして申し訳ございません。

    ご回答ありがとうございますm(__)m

    「…」がつくのはプラグインの仕様だったのですね!

    munyagu様の環境では正しく抜粋出来ているということなのでプラグインの不具合ではなく、私のサイトの環境によるものですかね…。

    バイト数に関係するものが動作していないか調べてみます。

    こんにちは。私も同じように悩んでいました。

    プラグイン中の
    wordpress-pupolar-posts.phpの2041行目あたりに
    protected function _get_title_sub($p, $instance)というfunctionがあります。

    このfunctionの中に、
    strlen($title_sub)という記述があります。
    strlenはマルチバイトの文字数カウントではないと考えて、mb_strlenとすると、うまく文字数がカウントされました。

    これを直すことで、例えばtitle_lengthの設定を30にした場合、日本語でも30文字未満のタイトルには、「…」が付加されませんでした。(多分求めていらっしゃる動きと同等ではないかと思います)

    他にも、excerptなどでも同じくstrlenが使われているので、mb_strlenにしてみるとうまくいくかもしれません。

    ちょっと前のご質問なので、質問者様の参考になればいいのですが。
    (なお、プラグインのコード自体をいじっているため、変更には質問者様の責任の範囲で行っていただければと思います。)

    tscode様

    返信が遅れてしまいまして申し訳ございません。

    貴重なお話有難うございます。

    なるほど…mb_strlenにすることで日本語(2バイト)対応にするということですね!

    プラグインの方のアップデートを待っていてもキリがありませんし、そのようにソースの改変をして一時しのぎをしてみようと思います^^
    有難うございました!

    プラグインのサポートより米国フォーラムへ「直して〜」って投稿しておきました。
    https://wordpress.org/support/plugin/wordpress-popular-posts

    折角 mb_substr を使っているのに(2065行目)、strlen のせいで微妙にマルチバイト対応していないのはもったいないですしね。

    うまくアップデートできるといいですねぇ。

    brtu5y4

    (@slime0099)

    kimipoohさま

    報告していただき、有難うございます!

    この不具合が治れば更に良いプラグインになりますね^^

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「WordPress Popular Postsのタイトル抜粋がおかしい。。」には新たに返信することはできません。