はじめに
以下を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 () { ob_start(); ?> jQuery(function ($) { $('.my-sort table').DataTable({ paging: false, // ページネーションを非表示 info: false, // 下部の情報を非表示 lengthChange: false, // 表示件数の選択を非表示 searching: false, // 検索ボックスを非表示 ordering: true // 並び替え機能を有効 }); }); <?php $handle = "datatables"; wp_enqueue_style($handle, 'https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css'); wp_enqueue_script($handle, 'https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js', ['jquery'], null, true); wp_add_inline_script($handle, ob_get_clean()); });
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 () { ob_start(); ?> .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'; font-weight: 900; margin-left: 3px; } .tablesorter-headerUnSorted::after { content: '\f0dc'; } .tablesorter-headerAsc::after { content: '\f0de'; } .tablesorter-headerDesc::after { content: '\f0dd'; } <?php $handle = 'tablesorter'; wp_register_style($handle, false); wp_enqueue_style($handle); wp_add_inline_style($handle, ob_get_clean()); ob_start(); ?> jQuery(function ($) { $('.my-sort table').tablesorter(); }); <?php wp_enqueue_script($handle, 'https://cdnjs.cloudflare.com/ajax/libs/jquery.tablesorter/2.31.0/js/jquery.tablesorter.min.js', ['jquery'], null, true); wp_add_inline_script($handle, ob_get_clean()); });
さいごに
今回紹介した方法を使えば、「テーブル」ブロックにソート機能を簡単に追加できます。
DataTablesを使用すると、テーブル内の検索や詳細な設定など、さまざまな機能を活用できます。
一方、本ブログでは設定が簡単で手軽に使えるtablesorterを採用しています。
どちらを選ぶかは、デザインや必要な機能に応じて決めると良いでしょう。

