はじめに
以下の内容をCocoonで再現します。
テーブルをソートするための代表的な jQuery ライブラリには、以下の2つがあります。
- DataTables
- tablesorter
プラグイン「TablePress」はDataTablesを使用しており、参考ページでもDataTablesが利用されています。
一方で、本ブログではtablesorterを使用してテーブルのソートを実現しています。
これらのライブラリを使って、テーブルをソートする方法について説明します。
DataTables
完成イメージ
タイトル | 興行(億円) |
---|---|
名探偵コナン100万ドルの五稜星 | 157.1 |
劇場版ハイキュー!! ゴミ捨て場の決戦 | 115.5 |
キングダム 大将軍の帰還 | 79.8 |
劇場版 SPY×FAMILY CODE: White | 63.2 |
ラストマイル | 58.9 |
機動戦士ガンダムSEED FREEDOM | 53.0 |
インサイド・ヘッド2 | 52.7 |
変な家 | 50.5 |
怪盗グルーのミニオン超変身 | 45.3 |
あの花が咲く丘で、君とまた出会えたら | 45.2 |
実装手順
以下の手順で実装します。
- ラベルGutenbergエディターでの設定
Gutenbergエディター 以下の手順で設定します。
- 「テーブル」ブロックを配置します。
- 「ヘッダーセクション」をオンにし、列の見出しを入力します。
「ヘッダーセクション」を設定しないと正しく動作しません。 - 高度な設定→追加CSSクラスに
my-sort
と入力します。
- ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
add_action('wp_enqueue_scripts', function() { // ライブラリを追加 wp_enqueue_style( 'datatables-css', 'https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css', [], null ); wp_enqueue_script( 'datatables-js', 'https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js', ['jquery'], null, true ); // JavaScriptを追加 wp_add_inline_script( 'datatables-js', "jQuery(function($) { $('.my-sort table').DataTable({ paging: false, // ページネーションを非表示 info: false, // 下部の情報を非表示 lengthChange: false, // 表示件数の選択を非表示 searching: false, // 検索ボックスを非表示 ordering: true // 並び替え機能を有効 }); });" ); });
tablesorter
完成イメージ
タイトル | 興行(億円) |
---|---|
名探偵コナン100万ドルの五稜星 | 157.1 |
劇場版ハイキュー!! ゴミ捨て場の決戦 | 115.5 |
キングダム 大将軍の帰還 | 79.8 |
劇場版 SPY×FAMILY CODE: White | 63.2 |
ラストマイル | 58.9 |
機動戦士ガンダムSEED FREEDOM | 53.0 |
インサイド・ヘッド2 | 52.7 |
変な家 | 50.5 |
怪盗グルーのミニオン超変身 | 45.3 |
あの花が咲く丘で、君とまた出会えたら | 45.2 |
実装手順
以下の手順で実装します。
- ラベルGutenbergエディターでの設定
「DataTables」と同様です。
- ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
add_action('wp_enqueue_scripts', function() { // ライブラリを追加 wp_enqueue_script( 'jquery-tablesorter', 'https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.0/js/jquery.tablesorter.min.js', ['jquery'], null, true ); // JavaScriptを追加 wp_add_inline_script( 'jquery-tablesorter', "jQuery(function($) { $('.my-sort table').tablesorter(); });" ); });
- ラベルCSSを追加
以下のコードをstyle.cssに追加します。
.my-sort th div { display:inline-block; } .tablesorter-headerUnSorted:after, .tablesorter-headerAsc:after, .tablesorter-headerDesc:after { display:inline-block; font-family: 'Font Awesome 5 Free'; margin-left: 3px; } .tablesorter-headerUnSorted:after { content: '\f0dc'; } .tablesorter-headerAsc:after { content: '\f0de'; } .tablesorter-headerDesc:after { content: '\f0dd'; }
さいごに
今回紹介した方法を使えば、「テーブル」ブロックにソート機能を簡単に追加できます。
DataTablesを使用すると、テーブル内の検索や詳細な設定など、さまざまな機能を活用できます。
一方、本ブログでは設定が簡単で手軽に使えるtablesorterを採用しています。
どちらを選ぶかは、デザインや必要な機能に応じて決めると良いでしょう。