管理画面の投稿一覧に表示したカスタムフィールドにソート機能を付けてみました。
正確にはカスタム投稿の一覧ですが…。
そもそもの発端は、「WP-PostViews」というプラグインを使って記事ごとの表示数を確認しているのですが、普通の投稿(post)にはソート機能があるのに、カスタム投稿にはソート機能が無いのです。
カスタム投稿でも表示数順にソートして、人気のあるものないものを確認したいということで、チャレンジしてみました。
カスタムフィールドのカラムをソート出来るようにする
プラグイン「WP-PostViews」が「views」というカスタムフィールドを作って管理画面の一覧に「views」というタイトルで表示までしてくれているので、今回はソート機能だけを追加します。
■functions.php
//カスタムフィールドによるソートを可能にする
function sortable_columns($sortable_column) {
$sortable_column['views'] = 'views';
return $sortable_column;
}
add_filter('manage_edit-post_sortable_columns', 'sortable_columns');
今回はカスタム投稿ですので、フィルターフックをカスタム投稿仕様にしないといけません。
「post」の部分をカスタム投稿名に変更するだけです。
add_filter('manage_edit-{カスタム投稿名}_sortable_columns', 'sortable_columns');
ボクの場合は「works」というカスタム投稿に追加するので下記のようになります。
add_filter('manage_edit-works_sortable_columns', 'sortable_columns');
まとめ
すでに用意されたカスタムフィールドで試したので、少し分り辛かったかもしれません。
このあたりの記事を参考に独自のカラムを追加してから試すと理解しやすいかもしれません。