Menambahkan kolom khusus ke jenis posting khusus

27

Saya telah melakukan ini sebelumnya tetapi saya lupa nama kaitnya, dan tidak dapat menemukannya di mana pun ...

Apa yang saya coba lakukan adalah menambahkan beberapa kolom khusus dalam daftar jenis posting khusus di admin.

Misalnya, di admin, klik artikel , saya ingin menambahkan kolom khusus di sana.

Chin Leung
sumber
saya bertanya (dan menjawab) pertanyaan yang sama (termasuk bagaimana membuat mereka dapat disortir): wordpress.stackexchange.com/questions/253680/…
beta

Jawaban:

57

Kait untuk membuat kolom khusus dan data terkait untuk jenis posting kustom adalah manage_{$post_type}_posts_columnsdan manage_{$post_type}_posts_custom_columnmasing - masing, di mana {$post_type}nama jenis posting kustom.

Contoh ini dari dokumentasi menghapus kolom penulis dan menambahkan taksonomi dan kolom data meta:

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

    }
}
Dave Romsey
sumber
1
Terima kasih atas kail ini !!! Ini brilian !! Tidak ada dokumentasi yang jelas tentang stackoverflow !!! : D Cheers mate
Rodrigo Zuluaga
apakah tidak ada opsi untuk mengatur nomor kolom? seperti column_index[2]. Karena custom_column muncul di akhir kolom.
Dilip Gupta
@DilipGupta $ kolom adalah array, Anda dapat memesan ulang sebelum mengembalikannya
fogx
0

Saya tidak yakin apakah itu data meta khusus default yang ingin Anda tampilkan sebagai kolom, tetapi Anda dapat mempertimbangkan untuk menggunakan plugin gratis ini yang memungkinkan Anda menambahkan kolom untuk menampilkan bidang khusus. https://wordpress.org/plugins/codepress-admin-columns/

Versi pro bahkan memungkinkan Anda untuk menambahkan pemfilteran, pengurutan, dan pengeditan sisip ke kolom-kolom tersebut.

DGStefan
sumber
JANGAN GUNAKAN! Akan merusak situs Anda: Kesalahan fatal PHP: Tidak dapat mendeklarasikan ulang AC () (sebelumnya dinyatakan dalam [dihapus] \\ wp-content \\ themes \ [redacted] \\ functions.php: 628) di [redacted] \\ wp-content \\ plugins \\ codepress-admin-kolom \\ api.php on line 9
Peter Kionga-Kamau
@ PeterKionga-Kamau ini adalah masalah kompatibilitas dengan tema spesifik Anda. Kesalahan yang Anda poskan tidak akan muncul dengan tema WP default (seperti twentytwenty); Saya juga menggunakan plugin dengan Tema Divi dan merasa cukup berguna
Philipp
Apakah tidak ada semacam penamaan nama atau penggunaan nama fungsi yang kurang umum yang dapat digunakan untuk menghindarinya?
Peter Kionga-Kamau