皆さん「FAQ Manager」って使ってますか?
使ってない人がほとんどでしょうけど笑。
このサイトにたどり着いた人は、きっとみんな使ってるんでしょう。
そして、恐らくこんなことで困っているはずです。
・php7にアップデートしたらエラー文が出た!!
・[faq_topic][faq_tag]での絞り込み表示が出来なくなった!!
という感じではないでしょうか。
何せこのプラグイン、7年前からアップデートされていないです。。
まあ、無料ですし開発者を責めることは出来ません。
なので自分たちで解決しましょう。
まずは、本家のフォーラムを見てみましたが
ほとんどは質問だけでコメントがない状態。。
完全に過疎地状態ですね。。
累計8000件以上ダウンロードされているので、
日本でもご利用の方は結構いらっしゃるのではないでしょうか。
そして、大体調べていくと、下記のサイトに行きつくと思います。
私も行きつきました(ありがとうございます!!)
要するに、preg_replace関数が、php7からサポートされなくなったので、
preg_replace_callback関数に変更しろということですね。
ということで、wordpress-faq-manager/faq-manager.php 637,638行目あたりを下記に変更。
1 2 3 4 5 |
// clean up text // $faq_topic = preg_replace('~�*([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $faq_topic);/*変更前*/ // $faq_tag = preg_replace('~�*([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $faq_tag);/*変更前*/ $faq_topic = preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_topic); /* 変更後 */ $faq_tag = preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_tag); /* 変更後 */ |
こちらで、一応エラーは回避できるのですが。。
こちらの修正だけですと、[faq_topic][faq_tag]での絞り込み表示が出来ず、
全件表示されてしまいます。
これは、preg_replace関数が、上記以外にも使用されているからですね。
なので、残りの部分も書き換えてあげれば解決します。
残りはこちらです。
730行目あたり
1 2 3 |
// clean up text $faq_topic = preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_topic); $faq_tag = preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_tag); |
810行目あたり
1 2 3 |
// clean up text $faq_topic = preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_topic); $faq_tag = preg_replace_callback('~�*([0-9a-f]+);~i', function($m){chr(hexdec($m[1]));}, $faq_tag); |
多分、これで一覧表示されるようになると思います。
どなたかのお役に立てれば幸甚です。
それでは。