web-dev-qa-db-ja.com

カスタム投稿タイプにカスタム列を追加する

私は以前にこれをしました、しかし、私はフックの名前を忘れました、そして、どこでもそれを見つけることができません...

私がやろうとしているのは、管理者のカスタム投稿タイプのリストにいくつかのカスタム列を追加することです。

たとえば、管理者は、 articles をクリックして、そこにカスタム列を追加します。

21
Chin Leung

カスタム投稿タイプのカスタム列とそれに関連付けられたデータを作成するためのフックはそれぞれmanage_{$post_type}_posts_columnsmanage_{$post_type}_posts_custom_column です。ここで、{$post_type}はカスタム投稿タイプの名前です。

このドキュメントの例では、作成者列を削除し、分類法とメタデータ列を追加しています。

// Add the custom columns to the book post type:
add_filter( 'manage_book_posts_columns', 'set_custom_edit_book_columns' );
function set_custom_edit_book_columns($columns) {
    unset( $columns['author'] );
    $columns['book_author'] = __( 'Author', 'your_text_domain' );
    $columns['publisher'] = __( 'Publisher', 'your_text_domain' );

    return $columns;
}

// Add the data to the custom columns for the book post type:
add_action( 'manage_book_posts_custom_column' , 'custom_book_column', 10, 2 );
function custom_book_column( $column, $post_id ) {
    switch ( $column ) {

        case 'book_author' :
            $terms = get_the_term_list( $post_id , 'book_author' , '' , ',' , '' );
            if ( is_string( $terms ) )
                echo $terms;
            else
                _e( 'Unable to get author(s)', 'your_text_domain' );
            break;

        case 'publisher' :
            echo get_post_meta( $post_id , 'publisher' , true ); 
            break;

    }
}
48
Dave Romsey

デフォルトのカスタムメタデータを列として表示するかどうかはわかりませんが、カスタムフィールドを表示するために列を追加できるこの無料のプラグインを使用することを検討してください。 https://wordpress.org/plugins/codepress-admin-columns/ /

Pro版では、これらの列にフィルタリング、ソート、インライン編集を追加することさえできます。

0
DGStefan