WP_Posts_List_Table::__construct()publicWP 3.1.0

Constructor.

Method of the class: WP_Posts_List_Table{}

No Hooks.

Return

null. Nothing (null).

Usage

$WP_Posts_List_Table = new WP_Posts_List_Table();
$WP_Posts_List_Table->__construct( $args );
$args(array)
An associative array of arguments.
Default: array()

Notes

  • See: WP_List_Table::__construct() for more information on default arguments.
  • Global. WP_Post_Type. $post_type_object
  • Global. wpdb. $wpdb WordPress database abstraction object.

Changelog

Since 3.1.0 Introduced.

WP_Posts_List_Table::__construct() code WP 6.5.2

public function __construct( $args = array() ) {
	global $post_type_object, $wpdb;

	parent::__construct(
		array(
			'plural' => 'posts',
			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
		)
	);

	$post_type        = $this->screen->post_type;
	$post_type_object = get_post_type_object( $post_type );

	$exclude_states = get_post_stati(
		array(
			'show_in_admin_all_list' => false,
		)
	);

	$this->user_posts_count = (int) $wpdb->get_var(
		$wpdb->prepare(
			"SELECT COUNT( 1 )
			FROM $wpdb->posts
			WHERE post_type = %s
			AND post_status NOT IN ( '" . implode( "','", $exclude_states ) . "' )
			AND post_author = %d",
			$post_type,
			get_current_user_id()
		)
	);

	if ( $this->user_posts_count
		&& ! current_user_can( $post_type_object->cap->edit_others_posts )
		&& empty( $_REQUEST['post_status'] ) && empty( $_REQUEST['all_posts'] )
		&& empty( $_REQUEST['author'] ) && empty( $_REQUEST['show_sticky'] )
	) {
		$_GET['author'] = get_current_user_id();
	}

	$sticky_posts = get_option( 'sticky_posts' );

	if ( 'post' === $post_type && $sticky_posts ) {
		$sticky_posts = implode( ', ', array_map( 'absint', (array) $sticky_posts ) );

		$this->sticky_posts_count = (int) $wpdb->get_var(
			$wpdb->prepare(
				"SELECT COUNT( 1 )
				FROM $wpdb->posts
				WHERE post_type = %s
				AND post_status NOT IN ('trash', 'auto-draft')
				AND ID IN ($sticky_posts)",
				$post_type
			)
		);
	}
}