PR(記事内にアフィリエイト広告が含まれています)
スポンサーリンク
Nucleus

NP_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, '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>」というタグらしきものがあるのですが、これがあるとパースエラーになるので除外しました。

コメント

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