menambahkan kategori ke kolom admin untuk jenis posting khusus?

13

Saya telah membangun jenis posting kustom yang disebut artikel dan informasi yang diberikan pada layar ringkasan admin jarang. Saya dapat menambahkan gambar thumbnail posting gambar pilihan menggunakan http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column dari tutorial.

Namun saya ingin mendapatkan gambaran umum tentang kategori dan sub kategori yang telah diberikan oleh pos-pos ini pada halaman admin. yaitu menambahkan kolom untuk bagian itu?

Berikut adalah kode yang saya gunakan untuk mendaftarkan taksonomi dalam kode jenis pos kustom

Jonathan Beech
sumber
Anda dapat menggunakan plugin seperti Codepress Admin Columns
fregante

Jawaban:

18

Fungsi register_taxonomy memiliki parameter yang disebut show_admin_columnyang akan menangani penambahan kolom. Sudahkah Anda mencobanya?

misalnya:

register_taxonomy(
    'my_tax, 
    'post_type', 
    array(
        'label'             => 'My Taxonomy',
        'show_admin_column' => true,
        )
);
darrinb
sumber
1
Tolong, tambahkan kode dan jelaskan bagaimana menggunakannya menjawab pertanyaan. Jika Anda hanya ingin menanyakan sesuatu kepada OP, gunakan komentar.
cybmeta
6

Setelah beberapa pencarian, saya menemukan solusi menggunakan manage_edit-${post_type}_columnsfilter dan manage_${post_type}_posts_custom_columntindakan.

Kolom dibuat dengan filter dan kemudian kolom diisi dengan tindakan. Saya berasumsi kolom tambahan dapat ditambahkan dan diisi dengan cukup mudah menggunakan ide-ide dalam tautan ini http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types

add_filter('manage_edit-article_columns', 'my_columns');
function my_columns($columns) {
    $columns['article_category'] = 'Category';
return $columns;
}

add_action( 'manage_article_posts_custom_column', 'my_manage_article_columns', 10, 2 );

function my_manage_article_columns( $column, $post_id ) {
global $post;

switch( $column ) {

    /* If displaying the 'article_category' column. */
    case 'article_category' :

        /* Get the genres for the post. */
        $terms = get_the_terms( $post_id, 'article_category' );

        /* If terms were found. */
        if ( !empty( $terms ) ) {

            $out = array();

            /* Loop through each term, linking to the 'edit posts' page for the specific term. */
            foreach ( $terms as $term ) {
                $out[] = sprintf( '<a href="%s">%s</a>',
                    esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'article_category' => $term->slug ), 'edit.php' ) ),
                    esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'article_category', 'display' ) )
                );
            }

            /* Join the terms, separating them with a comma. */
            echo join( ', ', $out );
        }

        /* If no terms were found, output a default message. */
        else {
            _e( 'No Articles' );
        }

        break;

    /* Just break out of the switch statement for everything else. */
    default :
        break;
}
}
Jonathan Beech
sumber