WordPressの投稿編集は、ビジュアルモードではなくHTMLモードを使っている。そのほうが使いやすいのだ。ただ、デフォルトではなく、WP-Quicktag というプラグインをずっと愛用している。これは、よく使うタグをあらかじめ設定できるため、使い勝手がぐんとアップする人気プラグインだ。
で、最近、WPによるサイトを立ち上げたのだが、これにもWP-Quicktag を入れようと思った。しかし、インストールしてタグを設定しようとすると、こんなエラーメッセージ。
Fatal error: Cannot use string offset as an array in /***/wp-content/plugins/addquicktag/addquicktag.php on line 312
なんかPHP5.0以降になると、なんたらかんたら、仕様が変更されたため、このような現象が発生するらしいい。ぐぐって解決策を探しても、よくわかりにくい。いちばん最後に、このエラーメッセージそのもので検索をかけて、さらにWP-Quicktagで絞込みをかけると、わかりやすい解決策を提示してくれたサイトを発見。
エラーメッセージが出た該当行のこのような部分を、
for ($i = 0; $i < count($o['buttons']); $i++) {
$b = $o[‘buttons’][$i];
$b[‘text’] = htmlentities(stripslashes($b[‘text’]), ENT_COMPAT, get_option(‘blog_charset’));
$b[‘start’] = htmlentities($b[‘start’], ENT_COMPAT, get_option(‘blog_charset’));
$b[‘end’] = htmlentities($b[‘end’], ENT_COMPAT, get_option(‘blog_charset’));
$nr = $i + 1;
このように書き換えれば、いいのだ。
for ($i = 0; $i < count($o['buttons']); $i++) {
if(is_array($o)){
$b = $o[‘buttons’][$i];
$b[‘text’] = htmlentities(stripslashes($b[‘text’]), ENT_COMPAT, get_option(‘blog_charset’));
$b[‘start’] = htmlentities($b[‘start’], ENT_COMPAT, get_option(‘blog_charset’));
$b[‘end’] = htmlentities($b[‘end’], ENT_COMPAT, get_option(‘blog_charset’));
$nr = $i + 1;
これですんなりとエラーが解消された。インターネットは、このような疑問をぐいっと飲み込み、また回答を誰かが返してくれることが、素晴らしい。
コメント