2017.08.15
2017.09.08
WordPress
WordPressの管理画面の項目を編集してすっきりさせる方法

WordPressでカスタム投稿タイプを作成したときに、管理画面に空欄しか表示されない不要な項目が残ってしまったり、逆にカスタムフィールドで制作したフィールド名を項目として表示できたら便利になることがあります。見栄えを編集できると不要な情報をなくしてすっきりさせることができたり、必要な情報の視認性をあげられるので、よりユーザーフレンドリーな管理画面にすることができます。今回はそんな管理画面の項目欄の編集方法を紹介します。
項目の削除
記述はすべてfunction.phpに書き足します。
function edit_posts_columns($columns) {
        unset($columns['消したい項目のid']);
        return $columns;
}
add_filter( 'manage_posts_columns', 'edit_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );
項目を削除したい場合のコードです。
消したい項目のidは管理画面のソースで、項目のthに自動で割り当てられているものです。
3行目のunset($columns['消したい項目のid']);で項目を指定しており、行を追加して複数指定することもできます。
ちなみにカスタム投稿タイプを制作した場合にデフォルトで表示されるページのタイトルのIDはhsm_pagetitle、ページ description(説明文)のIDはhsm_descriptionです。
カスタムフィールドの追加
function edit_posts_columns($columns) {
        $columns['追加したいフィールド名'] = "表示したい項目名";
        return $columns;
}
function add_column($column_name, $post_id) {
        if( $column_name == '追加したいフィールド名' ) {
                $stitle = get_post_meta($post_id, '追加したいフィールド名', true);
        }
        if ( isset($stitle) && $stitle ) {
                echo attribute_escape($stitle);
        } else {
                echo __('None');
        }
}
add_filter( 'manage_posts_columns', 'edit_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );
項目に指定のカスタムフィールドの値を表示したい場合は上記のように記述します。デフォルトのカスタムフィールドだけでなく、有名プラグインのadvansed custam fieldで制作したフィールドも同じ記述で導入できます。
カスタム投稿の場合&応用例
カスタム投稿タイプの場合は、サンプルコードの下2行の記述にカスタム投稿タイプ名を加える必要があります。
また、削除と追加の記述は合わせて書くこともできます。
以下は、newsというカスタム投稿タイプの管理画面で、ページのタイトルとページ description(説明文)の2項目を削除して、カスタムフィールドの項目を2つ追加する場合、のサンプルコードです。
function edit_posts_columns($columns) {
        unset($columns['hsm_pagetitle']);
        unset($columns['hsm_description']);
        $columns['追加したいフィールド名-01'] = "表示したい項目名-01";
        $columns['追加したいフィールド名-02'] = "表示したい項目名-02";
        return $columns;
}
function add_column($column_name, $post_id) {
        if( $column_name == '追加したいフィールド名-01' ) {
                $stitle = get_post_meta($post_id, '追加したいフィールド名-01', true);
        }
        if( $column_name == '追加したいフィールド名-02' ) {
                $stitle = get_post_meta($post_id, '追加したいフィールド名-02', true);
        }
        if ( isset($stitle) && $stitle ) {
                echo attribute_escape($stitle);
        } else {
                echo __('None');
        }
}
add_filter( 'manage_news_posts_columns', 'edit_posts_columns' );
add_action( 'manage_news_posts_custom_column', 'add_column', 10, 2 );
まとめ
管理画面をすっきりさせたり、必要な情報を視認しやすくすることは、顧客満足度に繋がるはずです。導入を試してみてください。
 
	 
	 
	
 
	 
		 
 

 
           
           
   
   
  