質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

3853閲覧

入力コメントの確認画面を設置する方法

tuckQ

総合スコア64

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

1グッド

1クリップ

投稿2016/11/06 03:01

編集2016/11/08 13:12

###前提・実現したいこと
現状:「コメント投稿->元の画面に戻る」
理想:「コメント投稿->確認画面->元の画面に戻る」

というコメント内容確認画面を挟むフローに変更したい。

###試したこと
・他の方の参考例がないか?ググってみたが、よい例がみつからなかった。

###質問
どういうプログラムを作成すればよいか?まったくイメージが湧いていないので、まずは開発の糸口になるようなアドバイスをいただければ幸いです。

###追記
もともと下記のような処理でコメント欄から取得したdata1のデータをcommentmetaテーブルに記録するところまで成功しておりました。

php

1add_action( 'comment_post', 'save_comment_meta' ); 2function save_comment_meta( $comment_id ) { 3 4$data1 = isset($_POST['data1']) ? $_POST['data1'] : null; 5 6update_comment_meta( $comment_id, 'data1', $data1, true); 7 8return; 9}

この処理だとそのままDB記録し、完了後に元のコメント入力ページに戻るという動作になるのですが、DB記録をする前に確認画面を咬ませ、下記のような処理を実現したい。

①修正があれば「戻る」ボタンを押して元のコメント欄に戻ってコメント修正
②修正がなければ「登録」ボタンを押してDB登録
③登録完了後に元のコメント入力ページに戻る

想像するに、コメントformの内容を確認画面に渡す処理ができればいいのでー、、、っとここで閃き、formのPOSTデータがどう引き継がれるかを追っていったところwp-comments-post.phpというファイルで下記フィルターフックを発見しました。

$location = apply_filters( 'comment_post_redirect', $location, $comment );

このフィルターフックを使って、任意のページにリダイレクトさせることができたので、あとはPOSTデータを表示させ「戻る」「登録」の処理を追加すれば完了かと思います。

下記のサイトも参考にさせていただきました。
http://on-ze.com/archives/5262

mogisu👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mogisu

2020/03/29 03:08

どのように解決されたか教えていただけないでしょうか?
guest

回答1

0

ベストアンサー

WordPress を色々カスタマイズする場合、WordPress と PHP の関数をより沢山覚える、フィルター & アクションというフック(API的なもの)を理解していると、色々とカスタマイズができるようになります。今回の質問の件も、コメントフォームのフィルターとアクションフックを使えば実装できると思います。

また、コメントフォームの動作は、テーマを変えても同じ仕様でなければならないと思うので、テーマの functions.php には記述せず、プラグインを作成するのがよいと思います。

投稿2016/11/07 16:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuckQ

2016/11/08 12:25

ご指摘ありがとうございます。フィルター&アクションフックは学習済みで、アクションフックを使ってコメント内容をcommentmetaにDB登録するところまで実装できております。質問内容が具体的でなかったので、このあたり説明不足であったことに気付きました。失礼いたしました。質問に作成済みのコードを追記しますので、よろしければ再度見ていただけるとありがたいです。よろしくお願いいたします。
tuckQ

2016/11/08 13:14

ご指摘を契機に確認すべき事項の整理ができ、ほぼほぼ自己解決できました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問