hiromasa.zone : o)

2007/6/24 Sunday 投稿時の月齢:9.0  月名:十日月  潮汐:長潮 Moon:9.0[十日月]今日の心技体 : 好調期好調期低調期

WordPress での日本語抜粋方法 このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加

日記 - 曇時々晴(24/15) ひろまさ @ 4:16

WordPress では RSS やサイト内検索結果、またトラックバックを受けたときなどに、必要であれば文字列の抜粋処理が走ります。 ご存じの通り、この抜粋の処理は単語間のスペースを利用するワードカウントで処理されているので単語間の区切りがない日本語ではうまく抜粋できません。 これを解決するために、ME の内部実装やハック、プラグインが発表されています。

まずは、この解決の元祖であろう jam さん のパッチから。 ぼのさんのところに詳しい解説があります。

power source* ≫ WP: 抜粋表示時の全文出力を修正

日本語のように単語間がスペースで区切られない言語の場合、記事本文を抜粋表示する the_excerpt() を用いたとき、抜粋表示オプション欄を入力していない記事については HTML タグを取り除いた全文が出力されてしまう(正確には、英単語などがある程度混ざれば途中で切れる)。(図1)
私はほとんど当該オプションを入力していないので、アーカイブページで抜粋表示をしようとして困った。*1

フィルターをうまくつかった、Junon さんからのプラグインの実装もあります。

the_excerpt()で漢字も対応させるplugin | Tech de Go

これが、日本語(というかマルチバイト文字)の場合にはワードの概念が無いので、ほぼ全部表示されることになる。これではいやなので、対応するためのプラグインを作った。このプラグインは、wordpressのthe_excerpt(), the_excerpt_rss(), comment_excerpt()の3つの関数をフィルターして、マルチバイト文字100文字(デフォルト)で省略の「...」を表示する。1バイトのアルファベット、数字、記号などは文字数としてカウントしない。1バイトの場合は55ワードで省略は基本設定のままになる。

hiromasa.zone マニアの方(いるのか!?)はお気づきだったかもしれませんが、先日ふと思い、ぼくも RSS 抜粋に対してパッチをあてていました。 しかしそこは hiromasa.zone 、上に書かせて頂いたプラグインのような高度な文字列処理ではなく、

「。」が3つきたらそこでおわり...

という思いつき実装。。 しかしRSS 抜粋で使うと結構あつい(笑) 3センテンスに内容を凝縮するのが結構楽しかったりします。 more 使えって話もあるのですが、ものぐさなのでプレーンオールドエントリーでやるにはどうすればいいかなと考えた結果です。 🙂

ちなみに、全文 RSS 主流なのになんで抜粋かっていうと、フィードリーダが publish 後瞬く間にエントリを持って行くので publish 後の修正が効かない、、という単純な理由です。 結構間違えに気がついて変更するもので…。 (前も書いたか

この抜粋ロジックをプラグイン化したので(簡単なものですが)、せっかくなので公開します。 エントリにありそうな日本語の文章でしかうまく動きませんが、もしやってみたい方がいましたらどうぞ。

wp-murasame.tar.gz

実はいくつかの抜粋を組み込んで、フィルターごとに設定しようともくろんだため、いまのところ妙な実装になっています。

RSS 以外も、エントリ一覧や検索結果でつかわれる the_excerpt() やトラックバック抜粋 comment_excerpt() にも適応できるように、プラグインの下の方でコメントつけていますので、適当に修正してご利用ください。

ME 版で 2.0 系で RSS に適応したい方は、ご利用の wp-rss2.php 等を本家版にさしかえてください。 ME 2.0 系は RSS にパッチがしてあってワードカウント抜粋が事前に対策されています。 2.2 系はそのままで大丈夫です。

また、プラグイン作成にあたりぼのさんにたくさんご協力いただきました。 ありがとうございます。

英語と日本語混在とか、HTML タグの扱いとか禁則とか、抜粋はいろいろ考えると奥が深いですね。 面白いロジックを思いついたら追加したいと思います。 🙂

4 Comments

Trackback

  1. From: power source* - 2007/6/29 Friday Nighttime (Trackback)

    WP plugin: 日本語抜粋 – wp-murasame…

    日本語の記事抜粋が上手く行なえない問題に対して、うちのサイトでは、jam さんのパッチを手修正でコアに当てている(… (more…)

  2. From: wp-murasame | わーどぷれすっ! - 2007/7/10 Tuesday Nighttime (Pingback)

    […] hiromasa.zone :o) ≫ WordPress での日本語抜粋方法 […]

  3. From: links for 2007-09-07 at orioa - 2007/9/7 Friday Daytime (Pingback)

    […] hiromasa.zone :o) ≫ WordPress での日本語抜粋方法 (tags: wordpress plugin) […]

  4. From: 課題あり:抜粋について、 | wordPress note - 2010/11/21 Sunday Morning (Pingback)

    […] 課題あり:抜粋について、 投稿日: 2009 年 5 月 22 日 作成者: admin hiromasa.zone :o) » WordPress での日本語抜粋方法 […]

Comment


このサイトはコンテンツをフリーズしました。トラックバック・コメントは閉じられています。

新しいサイトは、

hiromasa.another :o)

です。 :-)

このサイトについて

このブログは引っ越しを行いコンテンツはフリーズしています。hiromasa.anotherへどうぞ。

Powerd By WordPress

We (Heart) WordPress

WordPressME Logo
WordPress Plugins

ブログ内検索

Todays Popular

WordPress Ring

はてなリング - WordPress -

情報

31 queries. 0.092 seconds.

このページの先頭へ