Wordpressで使っているデータベースに自分でテーブルを作り、管理画面から自分用のコンテンツを保存しようとしているのですが、html上で扱うダブルクォートがエスケープされてしまい、更新するたびに\をエスケープして増殖してしまいます。
クエリの処理はこちらです。
PHP
1if($_POST["req"] == "send_content"): 2$wpdb->query($wpdb->prepare("UPDATE $wpdb->tag_content SET `title`=%s, `content`=%s WHERE `term_id`=%d", $_POST["title"], $_POST["tag_content_editor"], $_POST["term_id"]));
フォームはこんな感じで、wp_editor()
でwordpressのリッチテキストエディタを呼び出しています。
tag_content_editorというのがコンテンツになります。
PHP
1 <form action="現在のページ" method="post"> 2 <input type="hidden" name="req" value="send_content"> 3 <input type="hidden" name="term_id" value="<?php echo $tag->term_id; ?>"> 4 <label for="title">タイトル</label> 5 <input type="text" name="title"><br> 6 <?php wp_editor($content, "tag_content_editor"); ?> 7 <input type="submit" value="更新"> 8 </form>
フォームからPOSTされたHTMLのコンテンツを保存する処理です。(titleやterm_idは気にしないでください)
$wpdb->prepare()
で作ったクエリを$wpdb->query()
で投げる処理ですが、$wpdb->update()
や$wpdb->insert()
でも同じ結果でした。
投稿記事であるwp_postsテーブルのpost_contentの中身を覗いてみると、ダブルクォーテーションはエスケープされずにデータが入っています。
要は記事データを更新・作成するときと同じような処理をしたいのですが、可能でしょうか?
回答1件
あなたの回答
tips
プレビュー