WP-QuicktagのFatal errorを解消

スポンサーリンク

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で絞込みをかけると、わかりやすい解決策を提示してくれたサイトを発見。

WP-Quicktag 1.5.2

エラーメッセージが出た該当行のこのような部分を、

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;

これですんなりとエラーが解消された。インターネットは、このような疑問をぐいっと飲み込み、また回答を誰かが返してくれることが、素晴らしい。

コメント

タイトルとURLをコピーしました