bbp_get_user_object_ids( array $args = array() )

Get a user’s object IDs


Description Description

For the most part, you should not need to use this function, and may even want to come up with a more efficient way to get IDs on your own. Nevertheless, it is available here for your convenience, using the most efficient query parameters available inside of the various query APIs.


Parameters Parameters

$user_id

(Required) The user id

$rel_key

(Required) The relationship key

$rel_type

(Required) The relationship type (usually 'post')

$args

(Optional) The arguments to override defaults

Default value: array()


Top ↑

Return Return

(array|bool) Results if user has objects, otherwise null


Top ↑

Source Source

File: includes/users/engagements.php

function bbp_get_user_object_ids( $args = array() ) {
	$object_ids = $defaults = array();

	// Parse arguments
	$r = bbp_parse_args( $args, array(
		'user_id'     => 0,
		'object_type' => bbp_get_topic_post_type(),
		'rel_key'     => '',
		'rel_type'    => 'post',
		'filter'      => 'user_object_ids',
		'args'        => array()
	), 'get_user_object_ids' );

	// Sanitize arguments
	$r['user_id']     = bbp_get_user_id( $r['user_id'] );
	$r['rel_key']     = sanitize_key( $r['rel_key'] );
	$r['rel_type']    = sanitize_key( $r['rel_type'] );
	$r['object_type'] = sanitize_key( $r['object_type'] );
	$r['filter']      = sanitize_key( $r['filter'] );

	// Defaults
	if ( 'post' === $r['rel_type'] ) {
		$defaults = array(
			'fields'         => 'ids',
			'post_type'      => $r['object_type'],
			'posts_per_page' => -1,
			'meta_query'     => array( array(
				'key'     => $r['rel_key'],
				'value'   => $r['user_id'],
				'compare' => 'NUMERIC'
			),

			// Performance
			'nopaging'               => true,
			'suppress_filters'       => true,
			'update_post_term_cache' => false,
			'update_post_meta_cache' => false,
			'ignore_sticky_posts'    => true,
			'no_found_rows'          => true
		) );
	}

	// Parse arguments
	$query_args = bbp_parse_args( $r['args'], $defaults, "get_{$r['filter']}_args" );

	// Queries
	if ( 'post' === $r['rel_type'] ) {
		$query      = new WP_Query( $query_args );
		$object_ids = $query->posts;
	}

	// Filter & return
	return (array) apply_filters( "bbp_get_{$r['filter']}", $object_ids, $r, $args );
}

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.