ピッと気になるコトとモノをご紹介

カリルノ

ウェブ・ブログ

Simple Post Notesの管理画面一覧でソートが出来なかったので対応してみた

「Simple Post Notes」は各記事の編集ページにメモスペースを作ってくれる便利なプラグインです。
管理画面の記事一覧にも記入したテキストを表示させられるのも便利なところなのですが、なぜかソートが上手く機能しないんですね。

そこで対応方法を考えてみました。(製作者に連絡したほうが早そうだが。。)

コード

プラグイン自体は更新などのこともあるので直接触るのを避けつつ、ソートをする方法を考えてみたところ、管理画面の記事委一覧の既存の項目(Notes)とは別にカスタマイズした項目(メモ)を新しく作成することで対応してみた。
既存のものは表示オプションで非表示にしておく。

下のコードをfunction.php入れると上手くいくはず。
※私個人のために作成したものなので、使用は自己責任でお願いします。

function admin_posts_columns_custom($columns) {
	$columns['_spnote'] = 'メモ';
	return $columns;
}
add_filter( 'manage_posts_columns', 'admin_posts_columns_custom' );

function admin_posts_columns_custom_row($name, $post_id) {
	if ($name == '_spnote') {
		$note = get_post_meta( $post_id, '_spnote', true );
		if ( $note ) {
			echo nl2br( $note );
		}
	}
}
add_action( 'manage_posts_custom_column', 'admin_posts_columns_custom_row', 10, 2 );

function admin_posts_column_orderby_custom( $vars ) {
	if ( isset( $vars['orderby'] ) && '_spnote' == $vars['orderby'] ) {
		$vars = array_merge( $vars, array(
			'orderby' => 'meta_value',
			'meta_query' => array(
				array(
					'key' => '_spnote',
					'compare' => 'NOT EXISTS',
				),
				array(
					'key' => '_spnote',
				),
				'relation' => 'OR',
			)
		));
	}
	return $vars;
}
add_filter( 'request', 'admin_posts_column_orderby_custom' );

function admin_posts_column_sort_custom( $column ) {
	$column['_spnote'] = '_spnote';
	return $column;
}
add_filter( 'manage_edit-post_sortable_columns', 'admin_posts_column_sort_custom' );

まとめ

Simple Post Notesの管理画面一覧でソートが出来なかったので対応してみた、いかがでしたでしょうか。
ニッチ過ぎて需要はまったくないと思いますが、管理画面の一覧でメモ機能がソート出来ることはかなり使い勝手がよくなると思うので、おすすめですよ。

-ウェブ・ブログ
-, ,

Copyright© カリルノ , 2019 All Rights Reserved.