thêm danh mục vào cột quản trị cho loại bài đăng tùy chỉnh?


13

Tôi đã xây dựng một loại bài đăng tùy chỉnh được gọi là bài viết và thông tin được cung cấp trên màn hình tóm tắt quản trị viên rất ít. Tôi đã có thể thêm hình ảnh thu nhỏ của bài đăng hình ảnh nổi bật bằng cách sử dụng http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column từ một hướng dẫn.

Tuy nhiên tôi muốn có thể có được một cái nhìn tổng quan về các danh mục và danh mục phụ mà những bài đăng này đã được gán cho chúng trên trang quản trị. tức là thêm một cột cho phần đó?

Đây là mã mà tôi đã sử dụng để đăng ký phân loại trong mã loại bài đăng tùy chỉnh


Bạn có thể sử dụng một plugin như Cột quản trị
Codepress

Câu trả lời:


18

Hàm register_taxonomy có một tham số được gọi là show_admin_columnsẽ xử lý thêm một cột. Bạn đã thử chưa?

ví dụ:

register_taxonomy(
    'my_tax, 
    'post_type', 
    array(
        'label'             => 'My Taxonomy',
        'show_admin_column' => true,
        )
);

1
Xin vui lòng, thêm mã và giải thích cách sử dụng nó trả lời quesiton. Nếu bạn chỉ muốn hỏi điều gì đó với OP, hãy sử dụng các bình luận.
cybmeta

6

Sau một số tìm kiếm, tôi đã tìm thấy một giải pháp bằng cách sử dụng manage_edit-${post_type}_columnsbộ lọc và manage_${post_type}_posts_custom_columnhành động.

Các cột được tạo bằng bộ lọc và sau đó cột được điền với hành động. Tôi cho rằng các cột bổ sung có thể được thêm và điền khá dễ dàng bằng cách sử dụng các ý tưởng trong liên kết này 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;
}
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.