Раскрывающийся фильтр в пользовательских сообщениях

Это мой фрагмент для раскрывающегося фильтра в пользовательских типах сообщений:

<?php function blog_restrict_manage_posts() { global $typenow; $taxonomy = 'blog'; // Change this if( $typenow != "page" && $typenow != "post" ){ $filters = array($taxonomy); foreach ($filters as $tax_slug) { $tax_obj = get_taxonomy($tax_slug); $tax_name = $tax_obj->labels->name; $terms = get_terms($tax_slug); echo "<select name='$tax_slug' id='$tax_slug' class='postform'>"; echo "<option value=''>Wszystkie $tax_name</option>"; foreach ($terms as $term) { $label = (isset($_GET[$tax_slug])) ? $_GET[$tax_slug] : ''; // Fix echo '<option value='. $term->slug, $label == $term->slug ? ' selected="selected"' : '','>' . $term->name .' (' . $term->count .')</option>'; } echo "</select>"; } } } add_action( 'restrict_manage_posts', 'blog_restrict_manage_posts' ); ?> 

Но есть одна небольшая проблема – у меня есть два пользовательских сообщения: «x» и «y». И у меня есть этот фильтр выпадающего меню. Но фильтр для «x» отображается на странице пользовательских сообщений «y» и наоборот. Таким образом, все выпадающие списки видны на всех страницах админ-сообщений.

Благодаря 🙂

Solutions Collecting From Web of "Раскрывающийся фильтр в пользовательских сообщениях"

При использовании этого крючка ваша функция получает два параметра: onde of the – это пул текущего post_type;

 <?php function my_post_type_filter($post_type) { $post_slug = $post_type; if( $post_slug == 'the_post_type_slug') { // Do something } } add_action( 'restrict_manage_posts', 'my_post_type_filter' ); ?> 

Чтобы узнать больше об этом, проверьте документы .