WP_Screen::render_view_mode()

In this article

Renders the list table view mode preferences.

Source

public function render_view_mode() {
	global $mode;

	$screen = get_current_screen();

	// Currently only enabled for posts and comments lists.
	if ( 'edit' !== $screen->base && 'edit-comments' !== $screen->base ) {
		return;
	}

	$view_mode_post_types = get_post_types( array( 'show_ui' => true ) );

	/**
	 * Filters the post types that have different view mode options.
	 *
	 * @since 4.4.0
	 *
	 * @param string[] $view_mode_post_types Array of post types that can change view modes.
	 *                                       Default post types with show_ui on.
	 */
	$view_mode_post_types = apply_filters( 'view_mode_post_types', $view_mode_post_types );

	if ( 'edit' === $screen->base && ! in_array( $this->post_type, $view_mode_post_types, true ) ) {
		return;
	}

	if ( ! isset( $mode ) ) {
		$mode = get_user_setting( 'posts_list_mode', 'list' );
	}

	// This needs a submit button.
	add_filter( 'screen_options_show_submit', '__return_true' );
	?>
	<fieldset class="metabox-prefs view-mode">
		<legend><?php _e( 'View mode' ); ?></legend>
		<label for="list-view-mode">
			<input id="list-view-mode" type="radio" name="mode" value="list" <?php checked( 'list', $mode ); ?> />
			<?php _e( 'Compact view' ); ?>
		</label>
		<label for="excerpt-view-mode">
			<input id="excerpt-view-mode" type="radio" name="mode" value="excerpt" <?php checked( 'excerpt', $mode ); ?> />
			<?php _e( 'Extended view' ); ?>
		</label>
	</fieldset>
	<?php
}

Hooks

apply_filters( ‘view_mode_post_types’, string[] $view_mode_post_types )

Filters the post types that have different view mode options.

Changelog

VersionDescription
4.4.0Introduced.

User Contributed Notes

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