WordPress ME 1.5.1 がらみで、Masayanさんのところで動かなくなったプラグインがあるそうなので、ちょっと調べてみました。
WordPress Plugins: Show Hide “more” with WordPressという、JavaScript でコメント欄がアクセスなしにびょーんってのびるプラグインです。 格好いい。
ME 1.5.1 の試験環境に試しに入れて・・・。 うん、そういえばプラグイン入れるのが初めてで入れるの自体に手間取る。(笑) 管理画面で「有効化」とかいてあったので動いていると思ったら、「有効化」するにはここを押すというコトでした。というわけで、ぽちっと押して有効化にしたら動きました。 🙂
有効化の状態で、現象である「トラックバックするとPOST先が空の抜粋内容になる」が Masayanさんところと同じように確認できました。しかも、試験環境だとプラスして「タイトルが化ける。。」 自分のサイトに対する投稿は正常に見える模様。
で、もよもよとソースを眺める。 なんとなくプラグインの仕組みが分かる。っていうか、かっちょいー。 add_filter でイベント登録して引数で内容をうばって加工できるのか~。
問題の「Show Hide “more”」プラグインをみてみると、動作的に POST したときに投稿内容を壊してしまっているみたいです。 投稿内容の取得の仕方が、WP デフォルトで入っている filter とちょっと違う。 古い仕様なのかな?
ということで、適当にデフォルトフィルターの仕様っぽくパッチしたところうまく動きました。 🙂 getContentforShowHide.php を以下のように修正。
$ diff getContentforShowHide.php.org getContentforShowHide.php
51,52c51,52
< function the_contentshowhide($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
< $content = get_the_contentshowhide($more_link_text, $stripteaser, $more_file);
---
> function the_contentshowhide($content, $more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
> $content = get_the_contentshowhide($content, $more_link_text, $stripteaser, $more_file);
59c59
< function get_the_contentshowhide($more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
---
> function get_the_contentshowhide($content, $more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
65c65
< return $post->post_content;
---
> return $content;
プラグインの仕様をまったく知らないのでインチキかもしれませんが、なんとなく動いている気がします。
Masayanさん、どうでしょう? 🙂