Jun
06
2009

WP-PostViewsの抜粋文字数削減

14:18 pm

WP-PostViewsは、記事の閲覧回数やその記事の抜粋を表示してくれる便利なプラグインですが、抜粋される文字数をWPのデフォルトの数より少なくできるようにしてみました。

wp-postviews.phpを以下のように修正します。

1.先頭の著作権関係のコメントの直後28行目あたりに以下の関数を定義します。

### Function: mb_wordraps
function mb_wordwraps($mb_words, $txt) {
   $pointer = 0;
   $result_text = "";
   while ($pointer < mb_strlen($txt)) {
       $this_char = mb_substr($txt,$pointer,1);
       if (is_singlebytechar($this_char)){
	       $mb_words++; // Do not count single byte char;
	   } elseif ($pointer > $mb_words) {
	   	   return mb_substr($txt,0,$pointer);
       }
       $pointer++;
    }
    return $txt; //Since length not exceeded return whole text
}

2.以下のコードを4か所に挿入します。

				if ($mb_exc_words > 0 ) {
				$post_excerpt = mb_wordwraps($mb_exc_words,$post_excerpt).'...';
				} else {
				$post_excerpt = "";
			    }

挿入する位置は、以下のコード(同じコードが4か所にあります)の直後です。

$post_excerpt = views_post_excerpt($post->post_excerpt, $post->post_content, $post->post_password);

※使い方
ウィジェットやテーマ内に以下のように書けば抜粋文字数が20文字になります。

<ul>
<?php if (function_exists('get_most_viewed')): ?>
 <?php $mb_exc_words = 20;  ?>
<?php get_most_viewed('post',5); ?>
<?php endif; ?>
</ul>

$mb_exc_words=0とすれば抜粋文字数が0になります。

8 Comments »

  • 先ほど以前のコメントにレスを返してしまいました・・・
    すみません、一度こちらを参考にしてトライしてみます。
    ありがとうございます。

    Comment | 2009/06/08
  • 不明な点があれば、また遠慮なくお尋ねください。
    ちなみに自分の場合は、ウィジェットでは文字数0にして使っています。

    Comment | 2009/06/08
  • hbirdssさん
    こんばんは。親切な対応に感謝致します。
    早速ソースを埋め込んでみたのですが・・・
    抜粋自体ができなくなってしまいました。
    現在原因を究明中です。
    何か気をつけなければならない事はありますでしょうか?

    Comment | 2009/06/09
  • 特に気をつけることは・・・・、う~ん、思い当たりませんが、ソースの埋め込み過程でおかしくなったのかなあ。差し支えなければメールで僕がカスタマイズしたwp-postviews.php を添付して送りましょうか?

    Comment | 2009/06/09
  • ありがとうございます。
    とっても嬉しいのですが、もう少し自分でトライしてみます。
    元々少しいじった覚えがあるので、再度DLしてからソースの追加を行ってみます。
    また追って、ご報告させて頂きます。
    色々とお気遣い頂きましてありがとうございます。

    Comment | 2009/06/10
  • 早速報告ですが、どうやら2つ目の
    $post_excerpt = views_post_excerpt($post->post_excerpt, $post->post_content, $post->post_password);
    の後にソースを入れると起きる症状です。

    「Multibyte Excerpt」または「WP Multibyte Patch」が邪魔してるとは考えにくいのでしょうか?

    Comment | 2009/06/10
  • 僕の「plugins」というページにこのサイトで使っているプラグインのリストがりますが、「Multibyte Excerpt」と「WP Multibyte Patch」の両方を使っているのが確認できると思います。なので、少なくともこの二つがコンフリクトを起こしているわけではないですし、「Multibyte Excerpt」とは独立して文字数を指定するようにしています。
    ソースの埋め込み過程で2バイトの空白などが途中に入ったりしていないでしょうか?
    原因が究明できることをお祈りします。

    Comment | 2009/06/11
  • [...] WP-PostViewsの抜粋文字数削減 | http://www.hbirds.net [...]

    Pingback | 2010/11/06

RSS feed for comments on this post. TrackBack URL

Leave a comment

You must be logged in to post a comment.

www.hbirds.net