apply_filters( "manage_{$post_type}_posts_columns", string[] $post_columns )

Filters the columns displayed in the Posts list table for a specific post type.


The dynamic portion of the hook name, $post_type, refers to the post type slug.

Possible hook names include:

  • manage_post_posts_columns
  • manage_page_posts_columns

Top ↑



(string[]) An associative array of column headings.

Top ↑

More Information

$post_columns is an associative array of “column name” ⇒ “label”. The “column name” is passed to callback functions to identify the column. The “label” is shown as the column header.

Built-in Column Types:

Note: Listed in order of appearance. By default, all columns supported by the post type are shown.

cb: Checkbox for bulk actions.

title: Post title. Includes “edit”, “quick edit”, “trash” and “view” links. If $mode (set from $_REQUEST[‘mode’]) is ‘excerpt’, a post excerpt is included between the title and links.

author: Post author.

categories: Categories the post belongs to.

tags: Tags for the post.

comments: Number of pending comments.

date: The date and publish status of the post.

Top ↑


File: wp-admin/includes/class-wp-posts-list-table.php

View on Trac

Top ↑


Version Description
3.0.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Andrija Naglic
    function my_custom_columns_list($columns) {
        unset( $columns['title']  );
        unset( $columns['author'] );
        unset( $columns['date']   );
        $columns['product_number']     = 'Product Number';
        $columns['custom_handler']     = 'Nice name';
        return $columns;
    add_filter( 'manage_product_posts_columns', 'my_custom_columns_list' );

    For further management of columns, check:
    To set the custom column values
    To set the primary (default) column

  2. Skip to note 2 content
    Contributed by Steven Lin

    Example migrated from Codex:

    Add Columns

    Suppose you have a ‘books’ custom post type and you want to add the publisher and book author in the edit page but remove the post author.

    function add_book_columns($columns) {
        return array_merge($columns, 
                  array('publisher' => __('Publisher'),
                        'book_author' =>__( 'Book Author')));
    add_filter('manage_book_posts_columns' , 'add_book_columns');
  3. Skip to note 3 content
    Contributed by Shashikant Yadav

    To reorder columns

    function wpdocs_item_columns( $columns ) {
        $custom_col_order = array(
            'cb' => $columns['cb'],
            'title' => $columns['title'],
            'rating' => __( 'Ratings', 'textdomain' ),
            'date' => $columns['date']
        return $custom_col_order;
    add_filter( 'manage_item_posts_columns', 'wpdocs_item_columns' );

    Just use the $custom_col_order array to reorder the columns in {$post_type}.
    NOTE: in the above example, item is the custom post type

  4. Skip to note 4 content
    Contributed by Steven Lin

    Example migrated from Codex:

    Replace Columns

    Here’s another example that completely replaces the columns, rather than adding and removing specific ones.

    function set_book_columns($columns) {
        return array(
            'cb' => '<input type="checkbox" />',
            'title' => __('Title'),
            'comments' => '<span class="vers comment-grey-bubble" title="' . esc_attr__( 'Comments' ) . '"><span class="screen-reader-text">' . __( 'Comments' ) . '</span></span>',
            'date' => __('Date'),
            'publisher' => __('Publisher'),
            'book_author' =>__( 'Book Author')
    add_filter('manage_book_posts_columns' , 'set_book_columns');

You must log in before being able to contribute a note or feedback.