get_posts

Definition:
function get_posts($args = null) {}

Retrieve list of latest posts or posts matching criteria.
The defaults are as follows: ‘numberposts’ – Default is 5. Total number of posts to retrieve. ‘offset’ – Default is 0. See WP_Query::query() for more. ‘category’ – What category to pull the posts from. ‘orderby’ – Default is ‘post_date’. How to order the posts. ‘order’ – Default is ‘DESC’. The order to retrieve the posts. ‘include’ – See WP_Query::query() for more. ‘exclude’ – See WP_Query::query() for more. ‘meta_key’ – See WP_Query::query() for more. ‘meta_value’ – See WP_Query::query() for more. ‘post_type’ – Default is ‘post’. Can be ‘page’, or ‘attachment’ to name a few. ‘post_parent’ – The parent of the post or post type. ‘post_status’ – Default is ‘publish’. Post status to retrieve.

Parameters

  • array $args: Optional. Overrides defaults.

Return values

returns:List of posts.

Source code

function get_posts($args = null) {

	$defaults = array(

		'numberposts' => 5, 'offset' => 0,

		'category' => 0, 'orderby' => 'post_date',

		'order' => 'DESC', 'include' => array(),

		'exclude' => array(), 'meta_key' => '',

		'meta_value' =>'', 'post_type' => 'post',

		'suppress_filters' => true

	);



	$r = wp_parse_args( $args, $defaults );

	if ( empty( $r['post_status'] ) )

		$r['post_status'] = ( 'attachment' == $r['post_type'] ) ? 'inherit' : 'publish';

	if ( ! empty($r['numberposts']) && empty($r['posts_per_page']) )

		$r['posts_per_page'] = $r['numberposts'];

	if ( ! empty($r['category']) )

		$r['cat'] = $r['category'];

	if ( ! empty($r['include']) ) {

		$incposts = wp_parse_id_list( $r['include'] );

		$r['posts_per_page'] = count($incposts);  // only the number of posts included

		$r['post__in'] = $incposts;

	} elseif ( ! empty($r['exclude']) )

		$r['post__not_in'] = wp_parse_id_list( $r['exclude'] );



	$r['ignore_sticky_posts'] = true;

	$r['no_found_rows'] = true;



	$get_posts = new WP_Query;

	return $get_posts->query($r);



}

1572

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: