WordPressプラグイン開発 – 表示するレコード数の制限LIMIT

[temp id=2]

さて、顧客テーブルから読み出すレコードですがレコード数が増えてくるとズラーッと長くなり見にくくなります。それに、大量の顧客レコードがある場合、システムのパフォーマンスに影響します。

そこで、一度に表示するレコードの範囲を指定して表示したいです。

表示するレコード数を制御するSQL文”LIMIT”

SQLの構文は以下のようになります。

SELECT * FROM テーブル名 ソート順 LIMIT スタート位置 , 表示する範囲
    public function kpw_client_process() {
        
        //レコードの読み出し
        global $wpdb;
        
        //ページャー
        $query_limit = '3'; //表示範囲
        $query_num = '0'; //スタート位置
        $query_range = $query_num . ',' . $query_limit;
        
        $table_name = $wpdb->prefix . 'kpw_client_table';
        $query = "SELECT * FROM {$table_name} ORDER BY `id` ASC LIMIT $query_range";
        $post_row = $wpdb->get_results($query);
        $results[] = "<h3>■ 顧客リスト($query)</h3>";
        foreach ($post_row as $row){
            $name = esc_html($row->client_name);
            $email = esc_html($row->client_email);
            $subject = esc_html($row->client_subject);
            $results[] = "<p>$name : <a href=mailto:$email>$email</a> : $subject<hr></p>";
        }
        $result = implode ( $results );
        
        //顧客情報入力フォームを表示
        $result .= kpw_client_form();
        return $result;
        
    }

$query_num = ‘0’;  レコード1から3行表示する

$query_num = ‘3’;  レコード4から3行表示する

これで何となくページャーができそうですが、問題は$query_numをどこに保存すれば良いのか?上記コードでは、とりあえず変数を手動で変えてやってますが、実際にはユーザーのリクエストに応じて変えていく必要があります。

感覚的には、わざわざWPオプションズに記録することもないし、一時的な「状態」ですからJavaScriptとかCookieとかで良い気がします。

まとめ

来たか〜JavaScriptとかCookie!!!

顧客リストのページャー(ページネイション)を実装するためにこれからJavaScriptまたはCookieについて学ぼうと思います。

ちなみに今回からコードの表示にHighlighting Code Blockを使わせて頂いております。インデントもちゃんとできてカラーリングもできて分かりやすいですね。

[temp id=1]
シェアする
購入する
購入する