表示オプションの保存ロジックは、/wp-admin/js/common.js の
※ 実際は、minify化された comment.min.js が読まれる
init : function() {
var that = this;
$('.hide-column-tog', '#adv-settings').click( function() {
var $t = $(this), column = $t.val();
if ( $t.prop('checked') )
that.checked(column);
else
that.unchecked(column);
columns.saveManageColumnsState();
});
},
saveManageColumnsState : function() {
var hidden = this.hidden();
$.post(ajaxurl, {
action: 'hidden-columns',
hidden: hidden,
screenoptionnonce: $('#screenoptionnonce').val(),
page: pagenow
});
},
によって、ajax で保存処理を行っています。
ajaxのリクエスト先は、 /wp-admin/includes/ajax-actions.php の wp_ajax_hidden_columns関数がとり行っています。
自分で言うのもなんですが WP_List_Table の実装の参考にするには Contact Form 7 はあまり役に立たないと思います。カスタム投稿タイプが標準で提供する管理パネルを使えば最小の手順で実装できるはずですが Contact Form 7 ではそうしていないので。
Codex のリファレンスを見ていただいたらいろいろと役に立つ情報が得られると思いますが、そこに紹介されている Custom List Table Example というデモ用のプラグインが参考になると思うので試してみてください。
なお、Codex にも書いてあるようにプラグインでの WP_List_Table クラスの利用は推奨されているわけではありませんのでご注意ください。
お二方ともご回答ありがとうございます。
カスタム投稿タイプを使用すれば手っ取り早いのは仰る通りですね。
しかしWP_List_Tableの勉強も兼ねてある程度進めてきたものですから、なんとかこのまま
完成させたい思いです。
Custom List Table Exampleも参考にしているのですが、このプラグインには表示オプションスクリーンが搭載されていないためContactform7を参考にさせていただきました。
Contactform7においては、このスクリーンの保存処理に関してAjax等の処理を何か加えているのでしょうか?
特に何か加えた記憶はないですね。そこは必要なかったと思います。