WP_Posts_List_Table::get_columns()publicWP 1.0

Method of the class: WP_Posts_List_Table{}

Return

String[]. Array of column titles keyed by their column name.

Usage

$WP_Posts_List_Table = new WP_Posts_List_Table();
$WP_Posts_List_Table->get_columns();

WP_Posts_List_Table::get_columns() code WP 6.6.2

public function get_columns() {
	$post_type = $this->screen->post_type;

	$posts_columns = array();

	$posts_columns['cb'] = '<input type="checkbox" />';

	/* translators: Posts screen column name. */
	$posts_columns['title'] = _x( 'Title', 'column name' );

	if ( post_type_supports( $post_type, 'author' ) ) {
		$posts_columns['author'] = __( 'Author' );
	}

	$taxonomies = get_object_taxonomies( $post_type, 'objects' );
	$taxonomies = wp_filter_object_list( $taxonomies, array( 'show_admin_column' => true ), 'and', 'name' );

	/**
	 * Filters the taxonomy columns in the Posts list table.
	 *
	 * The dynamic portion of the hook name, `$post_type`, refers to the post
	 * type slug.
	 *
	 * Possible hook names include:
	 *
	 *  - `manage_taxonomies_for_post_columns`
	 *  - `manage_taxonomies_for_page_columns`
	 *
	 * @since 3.5.0
	 *
	 * @param string[] $taxonomies Array of taxonomy names to show columns for.
	 * @param string   $post_type  The post type.
	 */
	$taxonomies = apply_filters( "manage_taxonomies_for_{$post_type}_columns", $taxonomies, $post_type );
	$taxonomies = array_filter( $taxonomies, 'taxonomy_exists' );

	foreach ( $taxonomies as $taxonomy ) {
		if ( 'category' === $taxonomy ) {
			$column_key = 'categories';
		} elseif ( 'post_tag' === $taxonomy ) {
			$column_key = 'tags';
		} else {
			$column_key = 'taxonomy-' . $taxonomy;
		}

		$posts_columns[ $column_key ] = get_taxonomy( $taxonomy )->labels->name;
	}

	$post_status = ! empty( $_REQUEST['post_status'] ) ? $_REQUEST['post_status'] : 'all';

	if ( post_type_supports( $post_type, 'comments' )
		&& ! in_array( $post_status, array( 'pending', 'draft', 'future' ), true )
	) {
		$posts_columns['comments'] = sprintf(
			'<span class="vers comment-grey-bubble" title="%1$s" aria-hidden="true"></span><span class="screen-reader-text">%2$s</span>',
			esc_attr__( 'Comments' ),
			/* translators: Hidden accessibility text. */
			__( 'Comments' )
		);
	}

	$posts_columns['date'] = __( 'Date' );

	if ( 'page' === $post_type ) {

		/**
		 * Filters the columns displayed in the Pages list table.
		 *
		 * @since 2.5.0
		 *
		 * @param string[] $post_columns An associative array of column headings.
		 */
		$posts_columns = apply_filters( 'manage_pages_columns', $posts_columns );
	} else {

		/**
		 * Filters the columns displayed in the Posts list table.
		 *
		 * @since 1.5.0
		 *
		 * @param string[] $post_columns An associative array of column headings.
		 * @param string   $post_type    The post type slug.
		 */
		$posts_columns = apply_filters( 'manage_posts_columns', $posts_columns, $post_type );
	}

	/**
	 * 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`
	 *
	 * @since 3.0.0
	 *
	 * @param string[] $post_columns An associative array of column headings.
	 */
	return apply_filters( "manage_{$post_type}_posts_columns", $posts_columns );
}