いろいろいじっていたら不具合も見えてきたので、今までで(自分の環境で)見つけたものを書き出しておきます。解決できたものもできなかったものもありますが、他の人の参考になるかもしれませんので書くだけは書いておきます。あ、ちなみに僕はPHPに関してはまったくのど素人なので、的外れなことを書いている可能性が高いので、要注意です。
コメント通知メールが文字化けする
と、その前に/wp-includes/pluggable.php
なぜかこのファイルだけ@mailが使われている。
165行目
return @mail($to, $subject, $message, $headers);
を
if (function_exists('mb_send_mail')) {
return mb_send_mail($to, $subject, $message, $headers);
} else {
return @mail($to, $subject, $message, $headers);
}
フォーラムで見かけたように変更。これって、@wp_mailを使えばいいんだっけ? 教えてえらい人。
まあ、それでも全体的に文字化けするので、僕の環境ではやっぱりNipponプラグインは必要でした。
日本語の概要抜粋表示がうまくいかない
日本語のテンプレートタグのthe_excerptを使ったときに抜粋表示がされず、全文がだらだらとみっともなく表示されてしまう。というのは、それはもう仕様です。としかいいようがないくらいのメジャーな問題ですが、WP2.1にも引き継がれています。
/wp-includes/formatting.php
780行目~
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words);
}
ここの記述が問題。解決策は下の方法で
1.本体ファイルをいじる
2.0.Xシリーズではきちんと対応したJamさんのアジア圏テキスト対応パッチがあり、その解説も結構あるのだけれど(参考:Google:アジア圏テキスト対応パッチ)、2.1だと結局手作業で修正しなければいけない。と思っていたらとりあえず簡単に対処する方法が書かれていたのでご紹介しておきます。
WordPress 2.1 抜粋表示方法 the_excerpt() « どうにもならない劣情の種子を植え付けられたばかりに:
2.テーマファイルで対応
Torimew!!! ? WordPressのテーマを作ってみる その4:
本体に手を加えるのはイヤだ!という人にはこちらの方法がオススメ。僕はここではいまだにMEのデフォルトのテンプレートを使っているので、アレがナニなんですけど、これはfunctions.phpに書く賢いやり方だと思います。テンプレートタグとは変数名が違うので注意。
3.プラグインで対応(してほしい)
ここではあえてプラグイン方式を取ってみるといいんじゃないかな。元のthe_excerptを上書きするプラグインを日本語用向けに作ったりはできないですか?
検索結果を抜粋表示するSearch Excerpt WordPress Pluginに上のロジックが取り込まれているので、これを利用する方法はないものか。
…あった。
でも、まだ試していないので、紹介するだけです。
僕はとりあえず、1.の方法で。
全角のスペースでAnd検索できない(未解決)
ME2.0.Xは
で解決したのだけど、コードの書き方変わってる…(くりかえしますが、僕はPHPは全くわかりません)
query.phpの749行目あたりっぽいんだけど、どう直すかわかんない。
カテゴリーリストでリンクカテゴリーまで表示される
テーマのlist_catsが悪さをしていたようです。
WP2.1からはテンプレートタグの扱いが変わったみたい(参考:Template Tags « WordPress Codex(英語))なのだけど、ドキュメントの中にはlist_catsで「リンクカテゴリーが出力されるようになった」ということは書いていないと思うので、何かあるのか?
ま、簡単に言うと、 list_catsとwp_list_catsは使うのをやめて、wp_list_categoriesを使いましょう。
ということですな。
僕もざっと読んだだけなのであんまり立派なことは書けないけど、他にも廃止される予定のテンプレートタグ(get_archivesなど)の扱いには注意したほうがよさそうです。
ここまで書いた。後でもうちょっと追記する可能性もあります。
トラックバックありがとうございます。
抜粋表示についてですが、上に書かれている3つの方法の内つるさんの採用された2の方法が最善と思われます。
まず1はコアファイルを改造するので将来の本体バージョンアップが億劫になる。
そして1のリンク先の方法では「strip_tags」処理がされてないので、htmlの閉じタグをカットされた際にオモシロイ表示?になってしまう。
3の方法(つまり僕の方法)もコアファイル同様に将来のプラグインバージョンアップ時に面倒な作業が付いて回ります。
やはり自己改造はテーマファイルの範囲で終わらせると言うのが重要かと考えます。
・・・僕が言うと説得力無いですが。。。
ちなみに僕は WordPress を WordPress として扱っていない危険な異端者ですので、今回同様ご参考程度にしてください。
ありがとうございます。僕は、思いっきり1の(将来)めんどくさい方法を取っていますw
しゅんろ~さんのオススメに従って、2の方法に変更してみることにします。あと、実は僕もよく(他のサイトでも)Search Excerptを使っているので、3の方法も使ってみることにしますね。こういうアイデアはいいなあと素直に思います。
でも、しゅんろ~さんの方法は、Search Excerptに便乗して(何だか書き方悪いな)変更しているので、面倒とかいうことになるのかも知れないですけど、元々WordPressのコアでできないこと(MEでも)をプラグインで補うという意味で、汎用性がかなり高いと思うのです。
the_excerptの表示だけを日本語でばっちり表示させることができるプラグインがあれば、それは相当需要がありそうなんですよね。
日本語を扱うならまずコレみたいな定番プラグインになれるんじゃないかなあ。
僕はPHPについてはほぼ初心者なので自作とか考えられないんですけど、どうですか?(他力本願だなあ)
あ、読み違ってました。1の方法を採用されてたんですね。(^^;
プラグイン配布処あたりで希望してみてはどうでしょう。
僕にスキルと能力と必要性があれば作るのですが、
1.マトモなスクリプトを作ったことが無い
2.WordPressの動きを理解できていない
3.環境が反則
ので手を出してないんです。
環境が反則ってのは、僕の WordPress って通常アリエナイ parmalink の形式なんで、正常動作を検証できない可能性が高いんです。
他の方が作ったスクリプトに便乗(この表現エエわイタダキ)小細工するのがやっとなんです。(僕も他力本願)
the_excerptに関しては色んなトコ調べてみたんですが、皆さんアジアンテキストパッチで満足されているのか、他の誰も手を出しているような情報が無いんですよね。
はじめまして
コアファイルを書き換えるのは嫌だなぁと思ってたんですが、
2の方法だとテーマで対応できるんですね。
僕もこの方法に変更してみる事にします。
>しゅんろ~さん
僕も他力本願らしく、自己解決できない場合はエライ人を見守ります!
>Dr.Jさん
変更の手順をチュートリアルとして教えていただけると、助かります(主に僕が←まだ試してない←急げ←僕←以下ループ)
ピンバック: affection. » Blog Archive » Sidebarのカテゴリリストにリンクカテゴリが表示される。
ピンバック: くろいおとなどっとこむブログ » 求めていたものが来た。
ピンバック: LOVE!?
はじめまして。
私もカテゴリーの表示と通知メールの文字化けではまっていたので、こちらのエントリーを参考にさせていただきました。
私の場合は逆にNIPPONプラグインを有効にしていて余計はまってしまい、プラグインを無効にしたら文字化けが解消されました。
>さっちん様
こちらこそはじめまして。よろしくお願いします。
僕の書いた記事は他の方が見つけたことのちょっとしたまとめですが、お役に立てたようでなによりです。