无法在媒体列表视图中使自定义分类过滤器正常工作

问题描述:

我在媒体列表视图中创建了一个过滤器下拉菜单,可根据所选术语过滤媒体文件。自定义分类项目的下拉列表呈现OK。但是过滤器根本不起作用。无论我从此下拉列表中选择的术语是否列出了所有媒体项目。没有过滤正在发生。无法在媒体列表视图中使自定义分类过滤器正常工作

这里是我的代码来创建过滤器下拉菜单(在funcitons.php):

function media_add_content_category_filter_dropdown() 
{ 
    $scr = get_current_screen(); 
    if ($scr->base !== 'upload') return; 

    $terms = get_terms('media_content_category', array('hide_empty' => false)); 
    if ($terms) { 
     printf('<select name="%s" class="postform">', esc_attr('mcfdd')); 
     print('<option value="">All Categories</option>'); 
     foreach ($terms as $term) { 
      printf('<option value="%s">%s</option>', esc_attr($term->term_id), esc_html($term->name)); 
     } 
     print('</select>'); 
    } 
} 

add_action('restrict_manage_posts', 'media_add_content_category_filter_dropdown'); 

这是我使用的代码过滤目的:

function media_content_filter($query) { 
    if (is_admin() && $query->is_main_query()) { 
     if (isset($_GET['mcfdd']) && $_GET['mcfdd'] == -1) { 
      $query->set('mcfdd', ''); 
     } 
    } 
} 

add_action('pre_get_posts','media_content_filter'); 

此时我被卡住了,不知道该从这里做什么。有人请帮忙!

工作的解决方案,以显示在媒体库分类过滤器和滤芯:

//[[START] - Add custom taxonomy dropdown to media library 
function media_add_content_category_filter_dropdown() 
{ 
    global $wp_query; 

    // check we're in the right place, otherwise return 
    if ('upload.php' != $pagenow) 
    return; 

    $tax_slug = 'media_content_category'; 
    $tax_obj = get_taxonomy($tax_slug); 

    // check if anything has been selected, else set selected to null 
    $selected = isset($wp_query->query[$tax_slug]) ? $wp_query->query[$tax_slug] : null; 

    wp_dropdown_categories(array(
    'show_option_all' => __($tax_obj->label . ' - All'), 
    'taxonomy'   => $tax_slug, 
    'name'    => $tax_obj->name, 
    'orderby'   => 'name', 
    'selected'   => $selected, 
    'hierarchical'  => true, 
    // 'show_count'  => true, 
    'hide_empty'  => false 
)); 

} 
add_action('restrict_manage_posts', 'media_add_content_category_filter_dropdown'); 

要通过自定义分类筛选职位

function media_tsm_post_convert_id_to_term_in_query($query) 
{ 
    global $pagenow, $typenow; 

// check we're in the right place, otherwise return 
if ('upload.php' != $pagenow) 
    return; 

$filters = get_object_taxonomies($typenow); 

foreach ($filters as $tax_slug) { 
    $var = &$query->query_vars[$tax_slug]; 
    if ($var != 0) { 
     $term = get_term_by('id', $var, $tax_slug); 
     $var = $term->slug; 
    } 
    } 
} 
add_filter('parse_query', 'media_tsm_post_convert_id_to_term_in_query'); 
//[END] - Add custom taxonomy dropdown to media library