I'll be NET 】創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)

トップページ > Wordpress > カスタム投稿タイプの管理画面の投稿一覧に並び順を追加する方法

カスタム投稿タイプの管理画面の投稿一覧に並び順を追加する方法

カスタム投稿タイプの並び順について

カスタム投稿タイプ作成時にサポート(support)にページ属性('page-attributes')が入っている時、投稿の編集画面のページ属性で並び順を設定できるようになります。

この記事では、page-attributesがsupportされたカスタム投稿タイプの並び順を管理画面の投稿一覧に表示し、並び順でソート可能にする方法を紹介します。

カスタム投稿タイプの並び順を管理画面の投稿一覧に表示する方法

下記のソースをfunction.phpに追加してください。

    //page_attributeがついた投稿タイプの管理画面に並び順追加
    function check_post_type_support_page_attr() {
        $all_post_types = get_post_types( array('show_ui' => true ), false );

        if ( !isset( $_REQUEST['post_type'] ) ) {
            $edit_post_type = 'post';
        } elseif ( in_array( $_REQUEST['post_type'], array_keys( $all_post_types ) ) ) {
            $edit_post_type = $_REQUEST['post_type'];
        } else {
            wp_die( __('Invalid post type') );
        }

        if ( post_type_supports( $edit_post_type, 'page-attributes' ) ) {
            add_filter( 'manage_' . $edit_post_type . '_posts_columns', 'add_menu_order_column' );
            add_action( 'admin_print_styles-edit.php', 'add_menu_order_column_styles' );
            add_filter( 'manage_edit-' . $edit_post_type . '_sortable_columns', 'add_menu_order_sortable_column' );
        }
    }
    add_action( 'load-edit.php' , 'check_post_type_support_page_attr' );
    if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
        add_action( 'admin_init', 'check_post_type_support_page_attr' );
    }
    function add_menu_order_column( $posts_columns ) {
        $new_columns = array();
        foreach ( $posts_columns as $column_name => $column_display_name ) {
            if ( $column_name == 'date' ) {
                $new_columns['order'] = __( 'Order' );
                add_action( 'manage_pages_custom_column', 'display_menu_order_column', 10, 2 );
                add_action( 'manage_posts_custom_column', 'display_menu_order_column', 10, 2 );
            }
            $new_columns[$column_name] = $column_display_name;
        }
        return $new_columns;
    }
    function add_menu_order_sortable_column( $sortable_column ) {
        $sortable_column['order'] = 'menu_order';
        return $sortable_column;
    }
    function display_menu_order_column( $column_name, $post_id ) {
        if ( $column_name == 'order' ) {
            $post_id = (int)$post_id;
            $post = get_post( $post_id );
            echo $post->menu_order;
        }
    }
    function add_menu_order_column_styles() {
    ?>
    <style type="text/css" charset="utf-8">
    .fixed .column-order {
        width: 7%;
        text-align: center;
    }
    </style>
    <?php
    }

上記のようにすればカスタム投稿タイプの並び順が管理画面の投稿一覧に表示され、並び順でのソートが可能になります。

記事移動

関連記事

WordPressでセッションを開始する方法

Wordpressでログインしたら、またはログアウトしたらリダイレクトする方法

Wordpressでログインしたら、またはログアウトしたらリダイレクトする方法

Wordpressでショートコードを利用してphpファイルをincludeする方法

Wordpressのカスタム投稿タイプにリビジョンを追加する方法

MW WP Form で選択された内容によって必須項目(バリデーションルール)を切り替える方法

MW WP Form で入力された内容によって自動返信メールや管理者宛メールの内容を変更する方法

Comment Form

  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)【I'll be NET】

プロフィール

author:I'll be NET

since:2014.01.01

東京都を拠点としたSOHO(フリーランス)による創作サイト向けWEB制作サービスを行っています。 お仕事とか創作活動とかでメモっておきたいこととかを掲載しています。

more

Feed