Ok I code it if that can help:
/* =======================================================
ADMIN FILTER BY UAMM
======================================================= */
/* drop down */
add_action( ‘restrict_manage_posts’, ‘nw_admin_UAM_filter’ );
function nw_admin_UAM_filter() {
global $wpdb;
$results = $wpdb->get_results(“SELECT ID, groupname FROM {$wpdb->prefix}uam_accessgroups”);
echo “<select name=’uam_filter’ class=’postform’>”;
echo ‘<option value=””>filtrer par Groupe</option>’;
foreach($results as $element) {
$selected=””;
if( $_GET[‘uam_filter’]==$element->ID){$selected=”selected”;}
echo ‘<option value=”‘.$element->ID.'” selected=”‘.$selected.'”>’ . $element->groupname.'</option>’;
}
echo ‘</select>’;
//echo $GLOBALS[‘wp_query’]->request;
}
/* filtrer query */
function nw_admin_UAM_filter_to_posts_query($join) {
global $wp_query, $wpdb,$post_type, $pagenow;
if($pagenow == ‘edit.php’ ){//&& $post_type == ‘telechargem_adherent’
if (isset($_GET[‘uam_filter’]) && $_GET[‘uam_filter’]!=0 ) {
//$uam_filter_id = esc_sql($_GET[‘uam_filter’]);
$join .= ” LEFT JOIN {$wpdb->prefix}uam_accessgroup_to_object ON {$wpdb->prefix}posts.ID = {$wpdb->prefix}uam_accessgroup_to_object.object_id “;
}
}
return $join;
}
add_filter(‘posts_join’, ‘nw_admin_UAM_filter_to_posts_query’);
function nw_admin_UAM_filter_to_posts_where( $where, &$wp_query )
{
global $wpdb,$post_type, $pagenow;
if($pagenow == ‘edit.php’ ){//&& $post_type == ‘telechargem_adherent’
if($_GET[‘uam_filter’] && $_GET[‘uam_filter’]!=0){
$uam_filter_id = esc_sql($_GET[‘uam_filter’]);
$where .= ” AND ({$wpdb->prefix}uam_accessgroup_to_object.group_id = ‘”.$uam_filter_id.”‘) “;
}
}
return $where;
}
add_filter( ‘posts_where’, ‘nw_admin_UAM_filter_to_posts_where’, 10, 2 );