You can use the views_{$this->screen->id}
filter in WP_List_Table::views()
, where screen ID in this case is edit-post
:
function wpse_177655_views( $views ) {
$custom = sprintf( '<a href="https://wordpress.stackexchange.com/questions/177655/%s"', esc_url( 'edit.php?post_type=post&custom=foobar' ) );
if ( ! empty( $_GET['custom'] ) && $_GET['custom'] == 'foobar' )
$custom .= ' class="current"';
$custom .= '>Custom</a>';
$views['custom'] = $custom;
return $views;
}
add_filter( 'views_edit-post', 'wpse_177655_views' );
Obviously this is more of an example than an exact solution. You’ll also need to hook onto pre_get_posts
to add the relevant meta query args.