1とりあえず整形してみてもこれが何をやりたいのかも分かりにくい...。foreachの$textがその後使われてない。実際に使ってる箇所は固定ページで何かメニューを表示。texts1="パスタ,ランチ,スイーツ,ドリンク"]$contentになるhtml[/loop]$content内の﻿#text1#をパスタに置き換える、と...。それをドリンクまで4回繰り返し。loop内でさらに別のショートコードを呼んでる。そっちでもforeachの使い方間違ってるしいや待ったそんな所から...?修正後。texts2や3は使われてない。shortcode_attsは省略時の初期値のためだしなくてもよさそう。do_shortcode($html);});extractが禁止されるのもよく分かる...。配列から変数が生まれるとかいにしえのregister_globalsに近いリスクがある。texts2も使いたくなったら困るかもしれないけどそもそもこんな複雑なことをショートコードでやってるのが。固定ページ1箇所で使ってるだけなんだからそのままhtmlで書くかテーマで実装したほうがいい。1回しか使わないショートコードに価値はない。修正していくと設計段階で間違ってることが多い...。