WordPress

お問い合わせフォームの管理画面を作ってみる(一覧):【63日目】WordPress1日1プラグイン

更新日:

ようこそのお運びで、厚く御礼申し上げます。
63日目です。今回は前回作成したお問い合わせフォームの管理画面を作ってみます。

お問い合わせフォームの管理画面を作成し、一覧画面を表示する。

前回作成したお問い合わせフォームの管理画面・管理メニューを作成し、投稿された内容の一覧画面を作成します。

今までの作成の流れです。

今回の仕様

  • 管理画面に「paka3の問合せ」メニューを追加する
  • メニューから、表示する画面を作成する
  • データベースから一覧を取得する
  • 一覧を表示する

また復習もかねて、以前作成したコードを今回は参照してください。

管理画面のメニューを作成
140322-0001

メニューをクリックすると一覧画面を表示
140322-0002

プラグインのファイルに、管理画面用のコードを書きます。

今回も引き続き、前回までのプラグインファイルに、コードを追加していきます(ここでは一部省略:コード全文は文末のgistを参照)。

//管理画面用:オブジェクトを生成
new Paka3_ContactAdmin;

class Paka3_ContactAdmin{
  function __construct() {
    global $wpdb;
    //データベースのテーブル名
    $this->table_name = $wpdb->prefix . 'paka3Table';
    add_action('admin_menu', array($this, 'adminAddMenu'));
   }
 
  //管理メニューの設定
  function adminAddMenu() {
    $page = add_submenu_page("options-general.php", 'Paka3の問合せ', 'Paka3の問合せ',  'edit_themes', 'paka3ContactList', array($this,'paka3_page'));
  }
 
  //*表示する内容と処理(後ほど処理の分岐)
  function paka3_page() {
       $this->paka3_list();
  }
  
  //
  //*一覧表示
  function paka3_list() {
     global $wpdb;
     $paka3_sql="SELECT * FROM ".$this->table_name." order by created desc";
 
    //**管理画面SQL文を実行する(select文のみ)の処理
    $paka3_sql_result = $wpdb->get_results($paka3_sql,OBJECT);
    
    //表示する内容(HTML)
    echo <<< EOS
       

Paka3の問合せリスト

お問い合わせの一覧です。 EOS; foreach($paka3_sql_result as $key=>$val){ $created = date_format(date_create($val->created), 'Y/m/d H:m'); echo <<< EOS EOS; } echo <<< EOS
ID 送信日 タイトル 内容
{$val->id} {$created} {$val->title} {$val->contents}
EOS; } }

ポイントはどこ?

今回は、前回までの投稿用とは別のクラスを定義しています。
※投稿用クラスと、管理用クラスを同一ファイルに作成しています。

構成はほぼ、過去の記事と同じなのですが、一部ポイントをおさらいしておきます。

  • 管理用に別クラスを定義します。
    //管理画面用:オブジェクトを生成
    new Paka3_ContactAdmin;
    
    class Paka3_ContactAdmin{
      function __construct() {
        global $wpdb;
        //データベースのテーブル名の設定
        //管理メニュー作成
        add_action('admin_menu', array($this, 'adminAddMenu'));
       }
    
      function adminAddMenu() {
        //管理メニューの設定
        $page = add_submenu_page("options-general.php", 'Paka3の問合せ', 'Paka3の問合せ',  'edit_themes', 'paka3ContactList', array($this,'paka3_page'));
      }
    
      function paka3_page() {
        //*表示する内容と処理(後ほど処理の分岐)
        //一覧画面の呼び出し($this->paka3_list())
      }
    
      function paka3_list() {
        //*一覧表示
        //管理画面SQL文を実行&値の取得
        //表示する内容(HTML)を出力(echo)
      }
    
    }
    
  • 表示する内容と処理(後ほど処理の分岐)、この部分は後ほど閲覧画面や削除処理等を行う場合の分岐処理用の関数
      function paka3_page() {
           $this->paka3_list();
      }
    
  • 一覧表示の関数paka3_list()
    SQLの実行は$wpdb->get_resultsを使います。

        //**管理画面SQL文を実行する(select文のみ)の処理
        $paka3_sql_result = $wpdb->get_results($paka3_sql,OBJECT;
    

コードをプラグイン用のファイルにします

paka3_contact.php」というファイルを作成し、以下のコードを記入します。

このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。

今回のまとめ

今回は管理画面のリスト表示をしてみました。権限の部分はまだ適当ですが、まずは管理画面での確認ができたと思います。次回は閲覧画面です。

-WordPress
-, , , , ,

Copyright© アルパカ@ラボ , 2019 All Rights Reserved Powered by AFFINGER5.