inc2734 / mw-wp-form

69 stars 46 forks source link

{post_title}で呼び出す記事タイトルにカッコ[] が含まれると表示が崩れる #121

Open aq-yoshida opened 3 years ago

aq-yoshida commented 3 years ago

フォームの記事で [mwform_text name="test" size="60" value="{post_title}"] というような項目をつくった時に、 記事タイトルにカッコ[] が含まれていると、正しくタグが出力されません。

/classes/services/class.exec-shortcode.php で、 mw-wp-formのショートコードを実行する前に投稿プロパティが置換されることで、mwform_**** のショートコードが正しく解釈されずに起こっているようです。

例えば、 [mwform_text name="test" size="60" value="{post_title}"] このショートコードで、記事タイトル「サンプルページ[1234]」が呼び出された時、

class.exec-shortcode.php の131行目で投稿プロパティが置換されて [mwform_text name="test" size="60" value="サンプルページ[1234]"] このようなショートコードに展開されてしまいます。

その後、 144行目の do_shortcode() でショートコードが正しく解釈されず、崩れてしまうようです。

まず浮かんだ簡単な解決策として、131行目より先に do_shortcode() を実行することを検証したところ、 問題なく動くようでしたが、処理の順序が変えると既存の利用者への影響が大きそうです。

など、崩れないように対策していただけないでしょうか。