• wp_llist_tableを用いた管理画面の作成にcontactform7を参考にさせていただいています。
    コンタクトフォーム7の管理画面のように表示オプション(screen)を使ってテーブルのカラムを非表示にしたりできるようにしたく奮闘中なのですが、表示オプションにてチェックボックスを
    選択するとカラムを表示/非表示にするまではできたのですが、適用ボタンを押したときの保存の処理ができておらず、適用ボタンを押すと最初のカラム数に戻ってしまいます。
    どこで処理が行われているのかコード内を探し回ったのですが力不足のため見つけることができませんでした。ウェブサイト上にも情報はなく行き詰ってしまっている状態です。

    もしよろしければ僅かな情報でも構いませんのでお力添え頂けませんでしょうか。
    どうぞよろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 表示オプションの保存ロジックは、/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関数がとり行っています。

    モデレーター Takayuki Miyoshi

    (@takayukister)

    自分で言うのもなんですが WP_List_Table の実装の参考にするには Contact Form 7 はあまり役に立たないと思います。カスタム投稿タイプが標準で提供する管理パネルを使えば最小の手順で実装できるはずですが Contact Form 7 ではそうしていないので。

    Codex のリファレンスを見ていただいたらいろいろと役に立つ情報が得られると思いますが、そこに紹介されている Custom List Table Example というデモ用のプラグインが参考になると思うので試してみてください。

    なお、Codex にも書いてあるようにプラグインでの WP_List_Table クラスの利用は推奨されているわけではありませんのでご注意ください。

    トピック投稿者 odmodm

    (@odmodm)

    お二方ともご回答ありがとうございます。
    カスタム投稿タイプを使用すれば手っ取り早いのは仰る通りですね。
    しかしWP_List_Tableの勉強も兼ねてある程度進めてきたものですから、なんとかこのまま
    完成させたい思いです。
    Custom List Table Exampleも参考にしているのですが、このプラグインには表示オプションスクリーンが搭載されていないためContactform7を参考にさせていただきました。

    Contactform7においては、このスクリーンの保存処理に関してAjax等の処理を何か加えているのでしょうか?

    モデレーター Takayuki Miyoshi

    (@takayukister)

    特に何か加えた記憶はないですね。そこは必要なかったと思います。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「wp_list_tableを用いた管理画面の表示オプション」には新たに返信することはできません。