> 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のプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpressのプラグイン「AddToAny Share Buttons」で任意の場所にシェアボタンを設置する方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpress Popular Postsでの表示内容をテーマ内でカスタマイズする方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressの投稿からカテゴリーやタグを削除する方法

Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressで記事のIDから記事内の一番目にある画像を取得する関数

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

Wordpressのget_terms()で特定のカスタム投稿タイプの公開記事のみcountの対象にする方法

Comment Form

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