カスタム投稿タイプへのカスタム列の追加


27

以前にこれをやったことがありますが、フックの名前を忘れてしまい、どこにも見つかりません...

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

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


私は同じ質問(それらをソート可能にする方法を含む)を尋ねました(そして答えました):wordpress.stackexchange.com/questions/253680/…-
ベータ版

回答:


57

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

ドキュメントの次の例では、author列が削除され、分類法とメタデータ列が追加されます。

// 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;

    }
}

1
このフックをありがとう!これは素晴らしい!! stackoverflowに関する明確なドキュメントはありません!!! :Dチアーズメイト
ロドリゴ・ズルアガ

列番号を設定するオプションはありませんか?のようなcolumn_index[2]。列の最後にcustom_columnが表示されるため。
ディリップグプタ

@DilipGupta $ columnsは配列です。返される前に並べ替えることができます
fogx

0

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

プロ版では、フィルタリング、並べ替え、インライン編集をこれらの列に追加することもできます。


使ってはいけません!あなたのサイトを壊します:PHP致命的なエラー:[編集済み] \\ wp-contentでAC()(以前に[編集済み] \\ wp-content \\ themes \ [編集済み] \\ functions.php:628で宣言された)を再宣言できません9行目の\\ plugins \\ codepress-admin-columns \\ api.php
Peter Kionga-Kamau

@ PeterKionga-Kamauこれは、特定のテーマとの互換性の問題です。投稿したエラーは、デフォルトのWPテーマ(twentytwentyなど)では表示されません。私はまた、ディビテーマとプラグインを使用し、それは非常に便利
フィリップ・

これを回避するために使用できる名前空間や、より一般的でない関数名の使用はありませんか?
ピーターキオンガカマウ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.