ホームページに contactform7 フォームを表示するカスタム wordpress プラグインを作成しています。
ワークフロー :
1.ユーザーはcontactform7を使用してフォームを作成し、ショートコードをコピーします
2.ユーザーはプラグインの設定フォームに値/ショートコードを入力します
3.プラグインは、$_POST['the-shortcode'] を使用して値/ショートコードをキャプチャします
4.プラグインは値/ショートコードをwp_optionsデータベースに保存します
5.エコーアウトまたはdo_shortcodeをプラグインして、値/ショートコード/CF7フォームを表示します
私の問題:プラグインの設定フォームを介してコンタクトフォーム7ショートコードを保存するたびに
[contact-form-7 id="4" title="お問い合わせフォーム 1"]
このようになります: (いくつかの \ があることに注意してください)
[contact-form-7 id=\"4\" title=\"お問い合わせフォーム 1\"]
esc_attr() を使用しようとしましたが、機能しませんでした。
esc_attr($_POST['ショートコード'])
do_shortcode('theshortcode') をエコーできるように、連絡先フォーム 7 のショートコードをそのまま wp_options データベースに保存するにはどうすればよいですか?
これは、プラグインの設定フォームのコードです:
<?php
global $options;
$cform_shortcode = esc_attr($_POST['cform_shortcode']);
$options['cform_shortcode'] = $cform_shortcode;
update_option('plugin_databasename_db', $options);
$options = get_option('plugin_databasename_db');
$cform_shortcode = $options['cform_shortcode'];
?>
<table>
<tr>
<td scope="row"><label for="tablecell">
Contact Form ShortCode
</label></td>
<td scope="row"><label for="tablecell">
<textarea name="cform_shortcode" id="" cols="80" rows="3"><?php if (isset($cform_shortcode)) {echo $cform_shortcode;} else {'';} ?></textarea>
</label></td>
</tr>
</table>
これはフロントエンドのコードです:
<?php
global $options;
$options = get_option('plugin_databasename_db');
if ( isset( $options['cform_title'] ) && isset( $options['cform_shortcode'] ) ){ ?>
<p class="wpic-strong"><?php echo $options['cform_title']?></p>
<div class="list-group-item-video">
<?php echo do_shortcode($options['cform_shortcode']); ?>
</div>
<br/>
<?php
} else {
'';
}
?>