Improved API

In this release, I focused on making the API more uniform; everything works for both posts-to-posts and posts-to-users connections now. This is possible because you can pass whole post and user objects, instead of just IDs.

Previously:

$connected = get_users( array(
	'connected_type' => 'posts_to_users',
	'connected_items' => $post->ID
) );

Now:

$connected = get_users( array(
	'connected_type' => 'posts_to_users',
	'connected_items' => $post
) );

This small change gives P2P more information to work with, which means fewer database queries are needed.

Shortcodes!

The plugin now comes with a pair of shortcodes for conveniently listing connected items anywhere.

Say you defined a connection type called ‘posts_to_pages’. Here’s how the shortcode would look like:

[p2p_connected type=posts_to_pages]

If you insert that into a post, it will display a list of connected pages. If you insert it into a page, it will display a list of connected posts.

And there’s one for related posts too:

[p2p_related type=posts_to_pages]

Shortcodes and widgets also have filters for modifying the HTML output.

Default field values

You can now set default values for the connection fields in the metabox, likes so:

p2p_register_connection_type( array(
	'name' => 'posts_to_pages',
	'from' => 'post',
	'to' => 'page',
 
	'fields' => array(
		'color' => array(
			'title' => 'Color',
			'type' => 'checkbox',
			'values' => array( 'green', 'yellow', 'blue', 'white' ),
			'default' => 'blue'
		),
	)
) );

In total, there were 16 resolved issues in this release.