apply_filters( ‘list_table_primary_column’, string $default, string $context )

Filters the name of the primary column for the current list table.


Column name default for the specific list table, e.g. 'name'.
Screen ID for specific list table, e.g. 'plugins'.


$column = apply_filters( 'list_table_primary_column', $default, $this->screen->id );



User Contributed Notes

  1. Skip to note 3 content

    A simple example for Users table and CPT table

    function my_list_table_primary_column( $default, $screen ) {//                                                             Alter the primary column in edit.php table(s)
    	// if we want the 'Name' column to be the primary column, on Users screen
        if ( 'users' === $screen ) {
            $default = 'name';
    	// if we want to set the primary column for CPT
        if ( 'edit-my_custom_post_type' === $screen ) {
            $default = 'my_custom_column_name';
        return $default;
    add_filter( 'list_table_primary_column', 'my_list_table_primary_column', 10, 2 );

    For further management of columns, check:
    To add/remove/rename columns
    To set the custom column values

  2. Skip to note 4 content

    If you’re adding a column in the first position, it’s important to set this column as primary because WordPress has CSS rules that are applied for columns after the primary column. Otherwise, the list table can render with some layout issues.

    Example of CSS rule used by WordPress:

    .wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column)

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