このフィルターフックはどう見ても MySQL に依存しません。おそらく、MySQL *以外の* 何か違う点があるのではないかと思います。サーバー環境の違いを書いてもらえますか?
lilyfanさん、回答ありがとうございます。
MySQL5がheteml、MySQL4は、Wadaxです。
両サーバーで、サイト専用テーマとdefault テーマで試しました。
Wadaxは、やはり機能しませんでした。
hetemlは、どちらも機能しました。
やはり、DB環境でしょうか。それともサーバーの問題でしょうか。
WP Multibyte Patch をお使いである場合は、excerpt_more フックは WP Multibyte Patch 内で実行されることと思います。
心配になったので念のため動作テストをしてみましたが問題はないようです。
また、lilyfan さんがおっしゃっているように MySQL のバージョンに依存するということは考えにくいです。
ブラウザのキャッシュが残っているということはありませんか?
もし、excerpt_more フックで置き換えたい文字列が日本語だったら、文字コードの違いが問題になりそうです。FTP/SFTP でサーバーに転送するとき、文字コードが変更されてしまっていて文字化けしているとか、mbstring の http_output で文字コードが自動変更されているとか、そのへんが理由かもしれません。
具体的にお作りになった excerpt_more にフィルターする関数を教えてください。
tenpuraさん、lilyfanさん、色々とありがとうございます。
キャッシュ、文字コードの問題ではないようです。
実際に置換するものは、<img … />(リンク画像)です。
ただ、例文のように[…]から[…..]にしてもフックされません。
また、今は次のようにフックさせていますが、
function new_excerpt_more($excerpt)
{
$default_excerpt_word = ‘[…]’;
$new_excerpt_word = “…<img ….. />“;
return str_replace($default_excerpt_word, $new_excerpt_word, $excerpt);
}
add_filter(‘wp_trim_excerpt’, ‘new_excerpt_more’);
index.phpでは、the_content()を使わず、the_excerpt()としていますが、
これがサイト内の検索では、置換されず […] のままなんです。(T_T)
プラグインかもしれないし、とにかくこうなったら、
一度、同じWadaxサーバーにテスト環境を作り、原因を究明しようと思います。
地道にやっていきます。原因がわかりましたら、また投稿致します。
現状直ってます。
原因は、よくわかりませんが、操作手順は、
1)プラグインで「wp-pagenavi」オフ。
2)同プラグインを新規にアップデート。
その際、wp-pagenaviプラグインコードにおいて、ラインブレークの混在があるため、ラインブレークをUnix(LF)に統一。
3)Wordpress 2.9.2 標準装備の「wp-multibyte-patch」で、バージョン 1.1.7が配布されていたので、ダウンロードして 手動で更新アップデート。
サイト内の検索(Search.php)での挙動は、search_excerpt-1.2(ylsy_search_excerpt.php)が原因でした。
このプラグイン、更新日が古いですね。
同様な事ができるプラグインがありましたら、どうか 教えてください。