WordPress プラグイン制作 その2

前回までは、ダッシュボードに管理画面メニューを表示してみました。メニューをクリックすると真っ白でしたが、今回はその中身を作ってみます。

(1) 処理を記述するファイルを作って読み込みます。

function moripower_table_manager() {
include('moripower-table-manager-admin.php');
}

読み込むファイル(moripower-table-manager-admin.php)には、表示するHTMLを記述します。

<p style="font-size:200p"></p>

めっちゃ、でかい「あ」を表示する。これはこれで面白いプラグインかも・・・。
m20110419-11

(2) テーブルを作成します
・「あ」ではやっぱり悲しいので、テーブルの内容を表示してみましょう。早速、テーブルを作ります。
・WordPressでWP-phpMyAdminというプラグインを入れるとダッシュボードから直接テーブル操作できるから便利です。下記のようなテーブルを作ってください。
・ちょと CakePHPを意識して、主キーは「id」でauto-incrementで。

field type null etc
id int(11) no unsigned auto-increment

(3) 適当にデータを入れて下さい。次に、テーブルを読み込みます。
・$wpdbオブジェクトを使うと、接続処理とか既にWordPressがやっているので、簡単にデータを持ってこれます。

<h2>モリパワー社員一覧</h2>
<?php
global $wpdb;
$table = "test_table";
$results = get_results("SELECT * FROM ". $table, "ARRAY_A");
print_r($results);
?>

・こんな感じで、テーブルの内容が表示されるはず。

モリパワー社員
Array ( [0] => Array ( [id] => 4 [name] => モリパワー社員あいう
         [age] => 50 [employee_no] => 192000 ) )

・表示されるのは分かったので、もっと表らしくtableタグで表示します。

  <table class="widefat">
    <thead>
    <tr>
      <th><?php _e('ID','mtm_poedit'); ?></th>
      <th><?php _e('氏名','mtm_poedit'); ?></th>
      <th><?php _e('年令','mtm_poedit'); ?></th>   
      <th><?php _e('社員番号','mtm_poedit'); ?></th>
      <th><?php _e('操作','mtm_poedit'); ?></th>
    </tr>  
    </thead>
   
    <?php foreach ($results as $i=>$row): ?>
    <tr>
      <td id="<?php echo "id".$i; ?>"><?php echo $row['id']; ?></td>
      <td id="<?php echo "name".$i; ?>"><?php echo $row['name']; ?></td>
      <td id="<?php echo "age".$i; ?>"><?php echo $row['age']; ?></td>   
      <td id="<?php echo "employee_no".$i; ?>"><?php echo $row['employee_no']; ?></td>
      <td><input type="button" value="<?php _e('copy','mtm_poedit');?>" onclick="copy_field(<?php echo $i; ?>)" /></td>
    </tr>  
    <?php endforeach; ?>

・こんな感じで表示されるはず。
m20110420-1
・class を widefat とするとダッシュボードでよく見る表デザインになるみたい。
・ループさせて行を表示して、id名に $i をつけて判別できるようにしました。javascriptのfield_copyという関数で、formのinputにコピーさせようと思います。

=> WordPress プラグイン制作 その3

1件のコメント

コメントを残す

役立つ
面白い

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください