-
Notifications
You must be signed in to change notification settings - Fork 260
Admin box filters
tnorthcutt edited this page Mar 13, 2012
·
40 revisions
When creating connections, say you want to order pages alphabetically instead of chronologically in the 'View All' tab.
You can do this with a little bit of PHP:
<?php
function order_pages_by_title( $args, $ctype, $post_id ) {
if ( 'posts_to_pages' == $ctype->name ) {
$args['orderby'] = 'title';
$args['order'] = 'asc';
}
return $args;
}
add_filter( 'p2p_connectable_args', 'order_pages_by_title', 10, 3 );
Or perhaps you'd like to only show top level pages in the admin box:
<?php
function order_pages_by_title( $args, $ctype, $post_id ) {
if ( 'posts_to_pages' == $ctype->name ) {
$args['post_parent'] = '0';
}
return $args;
}
add_filter( 'p2p_connectable_args', 'order_pages_by_title', 10, 3 );
Here are the filters which you can use for altering the admin boxes behaviour:
-
'p2p_connectable_args'
- called before querying for posts that the user can connect to the current post. -
'p2p_connected_args'
- called before querying for posts that are already connected to the current post. -
'p2p_new_post_args'
- called before creating a post via the "New" tab.
All of the above filters pass the follwing arguments to the callbacks:
- array
$args
- the current arguments that are being filtered. - object
$context
- the current P2P_Connection_Type instance. - mixed
$post_id
- the current post we're dealing with