WP Multibyte Patch

本家版日本語版 WordPress のマルチバイト文字の取り扱いに関する不具合の累積的修正と強化を行うプラグインです。
本家版、日本語版で日本語を正しく処理する為に必要となる機能を網羅しておりますのでなんらかの対策を行っていない場合は導入をお勧めします。

ダウンロード

WP Multibyte Patch 1.2.1 (11 KB) – August 15, 2010
md5: 69cc36ca92df9ed367072fb1b8171ef6
本家版日本語版 の WordPress 3.0 以上に対応しています。

主な機能

抜粋系関数

  • マルチバイト文字列が適切な位置で切断されない問題を修正します。具体的には、get_the_excerpt() と get_comment_excerpt() をマルチバイト対応化させていますので下流にある the_excerpt()、 the_excerpt_rss()、comment_excerpt() などの関数もマルチバイト対応します。
  • 出力文字列の長さを設定ファイル(wpmp-config.php)からコントロールできます。

検索

  • 全角スペースでも AND 検索となります。 [ja]
  • 検索文字列内の重複するスペースを取り除きます。 [ja]

メール送信

  • 送信メールのエンコーディングを JIS(ISO-2022-JP)、UTF-8、自動判別の3つのモードから選ぶことができます。有効時のデフォルトは JIS(ISO-2022-JP)です。 [ja]
  • WordPress 本体の実装とは異なり、UTF-8 モードではボディ部も base64 エンコード(7bit)します。[ja]

トラックバック受信

日本語系を含む多くのエンコーディングのデータが破壊される問題を修正します。

ピンバック受信

マルチバイト文字で書かれたページからのピンバック処理機能一式(エンコーディング検出、変換、トリム)を実装します。

ファイル名サニタイズ

ファイルアップロード時にマルチバイトを含むファイル名を md5 に変換します。

管理パネル

  • 日本語利用にあわせ投稿エディターの単語数表示を文字数表示に変えています。 [ja]
  • 日本語フォント表示を考慮し、管理パネルのヘッダ部に読み込んだ独自 CSS ファイル(admin.css)からフォントファミリーを sans-serif 系に統一、イタリック体を標準に変えています。 [ja]

BuddyPress 抜粋関数

bp_create_excerpt() でマルチバイト投稿の抜粋が作られない問題を修正します。HTML タグを取り除いた形の文字数ベースの抜粋を生成します。本機能はデフォルトではオフになっておりますので、ご利用の際は wpmp-config.php を編集して有効化してください。

ご注意: Activity の抜粋機能は表示時ではなくActivity データ記録時の実データに適用されます。また、抜粋化されるタイプとされないタイプの投稿があります。これらは BuddyPress の仕様によるものですのでご了承ください。

その他

  • 設定ファイル(wpmp-config.php)から各パッチ機能を個別に有効化・無効化できます。
  • 日本語圏以外のユーザー用途にも対応できるようロケール別に拡張クラス(エクステンション)をロードする仕様となっています。

※ 末尾に [ja] と書かれているものは付属の日本語用エクステンションが有効な場合に付加される機能です。

インストール

通常インストール

  1. ZIP を解凍し、wp-multibyte-patch フォルダを /wp-content/plugins の中に入れてください。
  2. 管理パネルのプラグインページで WP Multibyte Patch を有効化してください。

mu-plugins ディレクトリへのインストール

wp-multibyte-patch フォルダ、wpmp-load.php ファイルを下記のように配置することによりマルチサイトで WP Multibyte Patch を must-use plugin としてロードすることができます。

/wp-content/mu-plugins/wp-multibyte-patch
/wp-content/mu-plugins/wpmp-load.php

アップグレード

wp-multibyte-patch フォルダの中身を新しいファイルで上書きしてください。

アンインストール

  1. 管理パネルのプラグインページで WP Multibyte Patch を停止してください。
  2. wp-multibyte-patch フォルダを削除してください。データベースへの設定値の保存、ファイル生成等は行っておりません。

設定ファイル

デフォルトで標準的な設定値が割り当てられるようになっています。これらの設定値を変更する必要がある場合は
wpmp-config-sample.phpwpmp-config.php
/ext/ja/config-sample.php/ext/ja/config.php
それぞれ変名して内容を編集してください。デフォルト設定で問題がない場合はこれらの作業は必要ありません。

共通設定ファイル(wpmp-config.php)の説明とデフォルト値

  • $wpmp_conf['excerpt_length'] = 55;
    wp_trim_excerpt() とその下流関数の ASCII 文字列抜粋時の最大単語数
  • $wpmp_conf['excerpt_mblength'] = 110;
    wp_trim_excerpt() とその下流関数のマルチバイト文字列抜粋時の最大文字数
  • $wpmp_conf['comment_excerpt_length'] = 20;
    get_comment_excerpt() とその下流の関数の ASCII 文字列抜粋時の最大単語数
  • $wpmp_conf['comment_excerpt_mblength'] = 40;
    get_comment_excerpt() とその下流の関数のマルチバイト文字列抜粋時の最大文字数
  • $wpmp_conf['bp_excerpt_mblength'] = 110;
    BuddyPress の bp_create_excerpt() のマルチバイト文字列抜粋時の最大文字数
  • $wpmp_conf['bp_excerpt_more'] = ' [...]';
    BuddyPress の bp_create_excerpt() で出力される More 文字列
  • $wpmp_conf['patch_wp_mail'] = true;
    メール送信機能のマルチバイトパッチの有効化(true)、無効化(false)
  • $wpmp_conf['patch_incoming_trackback'] = true;
    トラックバック受信機能のマルチバイトパッチの有効化(true)、無効化(false)
  • $wpmp_conf['patch_incoming_pingback'] = true;
    ピンバック受信機能のマルチバイトパッチの有効化(true)、無効化(false)
  • $wpmp_conf['patch_wp_trim_excerpt'] = true;
    wp_trim_excerpt() とその下流抜粋関数のマルチバイトパッチの有効化(true)、無効化(false)
  • $wpmp_conf['patch_get_comment_excerpt'] = true;
    get_comment_excerpt() とその下流抜粋関数のマルチバイトパッチの有効化(true)、無効化(false)
  • $wpmp_conf['patch_process_search_terms'] = true;
    検索機能のマルチバイトパッチの有効化(true)、無効化(false)
  • $wpmp_conf['patch_admin_custom_css'] = true;
    管理パネルの独自外部 CSS 読込み機能の有効化(true)、無効化(false)
  • $wpmp_conf['patch_word_count_js'] = true;
    投稿エディターの単語数表示を文字数表示に変更する機能の有効化(true)、無効化(false)
  • $wpmp_conf['patch_sanitize_file_name'] = true;
    ファイル名サニタイズ機能の有効化(true)、無効化(false)
  • $wpmp_conf['patch_bp_create_excerpt'] = false;
    BuddyPress bp_create_excerpt() の抜粋マルチバイトパッチの有効化(true)、無効化(false)

日本語拡張設定ファイル(/ext/ja/config.php)の説明とデフォルト値

  • $wpmp_conf['mail_mode'] = 'jis';
    送信メールのエンコーディングのモードを、auto、 jis、 UTF-8 の中から選択

注意事項

システム要件

PHP の mbstring 系関数を使用しています。プラグインを有効化できない場合はこれらがお使いのシステムで利用可能な状態であるか確認してください。

コンフリクトについて

WordPress ではプラグインの組み合わせにより API フックや機能の競合が起こる場合があります。問題が起きた場合は設定ファイルで該当パッチ機能をオフにして様子をみてください。

バグを見つけたら

該当するリリースのエントリー、またはこのページにコメントを残してくださると助かります。可能な限り早く対処したいと思います。

218 Responses to WP Multibyte Patch

  1. Pingback: WordPressのアップデートとプラグイン『NoFollow Free』の導入 / DESIGN Oil BLOG

  2. Ray Mercer says:

    I use svn to update several sites running WP 2.7.x and I would like to use it to keep the multibyte plugin updated on my Japanese sites.

    However the version at http://svn.automattic.com/wordpress-i18n/ja/trunk/dist/wp-content/plugins/wp-multibyte-patch/ is behind the version on this site. Why don’t you use the official wordpress.org plugin cvs repository? Do you have any other svn server I should use instead?

    Thanks for your work!
    -Ray Mercer
    Yokosuka, Japan

  3. Pingback: At the Edge of the World - 幾つかWordPressのプラグインを導入

  4. tenpura says:

    Ray,
    I can’t say when, but it will be hosted in the official plugin repository in the near future. Sorry for the inconvenience.

  5. Pingback: WordPress をインストールしたら最初にしておくこと | Goodpress

  6. Pingback: WPラボ » 日本語サイトで記事の抜粋(excerpt)を使用

  7. Pingback: WPラボ » 記事抜粋の[...]を変更する

  8. Pingback: Plugins « weasel war dancers

  9. Pingback: みっくすじゅーす » SiteMix で WordPress

  10. Pingback: WordPressプラグイン at Olivine

  11. Pingback: Collision du rythme » <?php the_excerpt(); ?> 55文字のマルチバイトPlugin

  12. Pingback: [WordPress]プラグインについて。 | TAKA@P.P.R.S TECH!!!

  13. Ray Mercer says:

    tenpura様,
    Thanks very much for your reply. I appreciate your hard work to make wordpress better in Japan!

    Ray Mercer

  14. Pingback: キナティ - キナティができるまで~解決編&プラグイン編~

  15. Pingback: 便利なWorpPressプラグイン、27個まとめ | 赤と黒

  16. Pingback: Plugin 追加

  17. Pingback: CLARICE NOTE製作中

  18. Pingback: Wordpressにインストールしているプラグインを紹介してみる | Describe the World

  19. Pingback: col chi cum - Wordpress使用中プラグインまとめ

  20. Pingback: レンタルServerメモ

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">