作成中のプログラムに、削除機能をつけてみます。
まずは、function sample_plugin()に対して、削除確認画面と、
削除実行画面のメソッドをつけます。
/** * 管理画面のHTMLの生成と表示 */ function sample_plugin() { if (isset($_REQUEST["submit"]["detail"])) { //詳細 self::detail(); } else if (isset($_REQUEST["submit"]["edit"])) { //修正 self::edit(); } else if (isset($_REQUEST["submit"]["edit_check"])) { //修正確認 self::edit_check(); } else if (isset($_REQUEST["submit"]["edit_exec"])) { //修正実行 self::edit_exec(); } else if (isset($_REQUEST["submit"]["delete_check"])) { //削除確認 self::delete_check(); } else if (isset($_REQUEST["submit"]["delete_exec"])) { //削除実行 self::delete_exec(); } else { //初期表示 self::disp(); } }
次に関数delete_checkとdelete_execをそれぞれ新規作成します。
削除確認画面は以下のように書きます。
これは修正確認画面の応用なので、書き方によっては同一にできるかと思います。
/** * 削除確認 */ function delete_check() { $form_id = $_REQUEST["form_id"]; global $wpdb; $tbl_name = $wpdb->prefix . 'sample_mst'; $sql = "SELECT * FROM {$tbl_name} WHERE id = %d;"; $prepared = $wpdb->prepare($sql, $form_id); $rows = $wpdb->get_results($prepared, ARRAY_A); //データ一覧 echo <<< EOL <form action="" method="post"> <h2>データ削除確認</h2> <table border="1"> <tr> <td>ID</td> <td>{$form_id}</td> </tr> <tr> <td>NAME</td> <td>{$rows[0]["sample_name"]}</td> </tr> <tr> <td>登録日時</td> <td>{$rows[0]["create_date"]}</td> </tr> </table> <input type="hidden" name="form_id" value="{$form_id}"> <input type='submit' name='submit[delete_exec]' class='button-primary' value='削除する' /> <input type='submit' name='submit[edit]' class='button-primary' value='戻る' /> EOL; echo "</form>"; }
次に削除実行の関数を追加します。
/** * 削除実行 */ function delete_exec() { $form_id = $_REQUEST["form_id"]; //データを削除 global $wpdb; $tbl_name = $wpdb->prefix . 'sample_mst'; $sql = "DELETE FROM {$tbl_name} WHERE id = %s;"; $dlt = $wpdb->query($wpdb->prepare($sql, $form_id)); //データ一覧 echo <<< EOL <form action="" method="post"> <h2>データ編集認</h2> EOL; echo "<div class='updated fade'><p><strong>"; echo _e('削除が完了しました'); echo "</strong></p></div>"; echo <<<EOL <input type='submit' name='submit[]' class='button-primary' value='戻る' /> EOL; echo "</form>"; }
上記の機能を書くことで、データ一覧画面から詳細画面→削除確認画面→削除実行の流れができています。
書き方は千差万別でもっと効率のよい書き方もあると思います。
そこは今度プラグインの調整を続けていく際に強化していきます。