BBP_Topic_Replies_List_Table::prepare_items( $topic_id )

Prepare the list-table items for display


Description Description


Source Source

File: includes/admin/classes/class-bbp-topic-replies-list-table.php

	public function prepare_items( $topic_id = 0 ) {

		// Sanitize the topic ID
		$topic_id = bbp_get_topic_id( $topic_id );

		// Set column headers
		$this->_column_headers = array(
			$this->get_columns(),
			array(),
			$this->get_sortable_columns()
		);

		// Handle bulk actions
		$this->process_bulk_action();

		// Query parameters
		$per_page     = 5;
		$current_page = $this->get_pagenum();
		$orderby      = ! empty( $_REQUEST['orderby'] ) ? sanitize_key( $_REQUEST['orderby'] ) : 'date';
		$order        = ! empty( $_REQUEST['order']   ) ? sanitize_key( $_REQUEST['order']   ) : 'asc';
		$statuses     = bbp_get_public_reply_statuses();

		// Maybe add private statuses to query
		if ( current_user_can( 'edit_others_replies' ) ) {

			// Default view=all statuses
			$statuses = array_keys( bbp_get_topic_statuses() );

			// Add support for private status
			if ( current_user_can( 'read_private_replies' ) ) {
				$statuses[] = bbp_get_private_status_id();
			}
		}

		// Query for replies
		$reply_query  = new WP_Query( array(
			'post_type'           => bbp_get_reply_post_type(),
			'post_status'         => $statuses,
			'post_parent'         => $topic_id,
			'posts_per_page'      => $per_page,
			'paged'               => $current_page,
			'orderby'             => $orderby,
			'order'               => ucwords( $order ),
			'hierarchical'        => false,
			'ignore_sticky_posts' => true
		) );

		// Get the total number of replies, for pagination
		$total_items = bbp_get_topic_reply_count( $topic_id );

		// Set list table items to queried posts
		$this->items = $reply_query->posts;

		// Set the pagination arguments
		$this->set_pagination_args( array(
			'total_items' => $total_items,
			'per_page'    => $per_page,
			'total_pages' => ceil( $total_items / $per_page )
		) );
	}

Top ↑

Changelog Changelog

Changelog
Version Description
2.6.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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