警告: 整合性のない脚注開始用の簡単コード:
この警告が見当違いであれば、管理画面の 全般設定 > 脚注の開始・終了用の簡単コード > 簡単コードの整合性を検査 にある構文検査の機能を無効にしてください。
整合性のない脚注開始用の簡単コード:
“.*?)\)%\>#i"; $this->currentItem = &$data["item"]; $this->currentItem->body = preg_replace_callback($preg_expr, array(&$this, 'convertAsbn'), $this->currentItem->body); $this->currentItem->more = preg_replace_callback($preg_expr, array(&$this, 'con…”
こちらの記事を参考に、NP_Amazonで処理したいテンプレートでのみ動作するように改修してみました。
function event_PreItem($data) { //20170528_takehana_upd_s // $preg_expr = "#<\%amazon\((.*?)\)%\>#i"; // $this->currentItem = &$data["item"]; // $this->currentItem->body = preg_replace_callback($preg_expr, array(&$this, 'convertAsbn'), $this->currentItem->body); // $this->currentItem->more = preg_replace_callback($preg_expr, array(&$this, 'convertAsbn'), $this->currentItem->more); global $currentTemplateName; switch ($currentTemplateName) { case "001cccc/full": case "001cccc/short": case "002qss/full": case "002qss/short": case "007eeee/full": case "007eeee/short": case "007eeee/sidebar": case "sphone/full": case "sphone/short": //通常の処理 $preg_expr = "#<\%amazon\((.*?)\)%\>#i"; $this->currentItem = &$data["item"]; $this->currentItem->body = preg_replace_callback($preg_expr, array(&$this, 'convertAsbn'), $this->currentItem->body); $this->currentItem->more = preg_replace_callback($preg_expr, array(&$this, 'convertAsbn'), $this->currentItem->more); break; default: //Amazon処理を行わない $preg_expr = "#<\%amazon\((.*?)\)%\>#i"; $this->currentItem = &$data["item"]; $this->currentItem->body = preg_replace($preg_expr, '', $this->currentItem->body); $this->currentItem->more = preg_replace($preg_expr, '', $this->currentItem->more); break; } //20170528_takehana_upd_e
やってることはリンク先の記事に記載してある通りですが、いくつか補足しておきます。
当ドメインでは複数ブログを設置していて、テンプレートの数が50個近くもあるという状況です。それらの中でNP_Amazonを使うべきものは限られているので、使いたいテンプレートだけcase文の上の方にまとめて記載して通常の処理をさせ、それ以外はdefault句の方で処理しないような形にすることで、負荷軽減を測っているわけです。
なおリンク先の記事では、default句のところに「<ins></ins>」というタグらしきものがあるのですが、これがあるとパースエラーになるので除外しました。
コメント