/** * Add a category filter * * @since 0.1.0 */ function wp_media_categories_add_category_filter() { global $pagenow; // Bail if not upload page if ('upload.php' !== $pagenow) { return; } // Get media taxonomy $selected_value = isset($_GET['term']) ? $_GET['term'] : ''; ?> <label for="media_category" class="screen-reader-text"><?php esc_html_e('Filter by Category', 'wp-media-categories'); ?> </label> <?php $dropdown_options = wp_media_categories_get_media_category_options($selected_value); wp_dropdown_categories($dropdown_options); }
/** * Add a category filter * * @since 0.1.0 */ function wp_media_categories_add_category_filter() { global $pagenow; // Bail if not upload page if ('upload.php' !== $pagenow) { return; } // Looking at specific term $selected_value = isset($_GET['term']) ? $_GET['term'] : ''; // Maybe looking for attachments with no terms if (empty($selected_value)) { $selected_value = isset($_GET['media_category']) ? $_GET['media_category'] : ''; } ?> <label for="media_category" class="screen-reader-text"><?php esc_html_e('Filter by Category', 'wp-media-categories'); ?> </label> <?php $dropdown_options = wp_media_categories_get_media_category_options($selected_value); wp_dropdown_categories($dropdown_options); }
public function widget($args, $instance) { $title = empty($instance['title']) ? __('Categories', 'wp-media-categories') : $instance['title']; // This filter is documented in wp-includes/default-widgets.php $title = apply_filters('widget_title', $title, $instance, $this->id_base); $c = !empty($instance['count']) ? '1' : '0'; $h = !empty($instance['hierarchical']) ? '1' : '0'; $d = !empty($instance['dropdown']) ? '1' : '0'; echo $args['before_widget']; if (!empty($title)) { echo $args['before_title'] . $title . $args['after_title']; } $media_cat_args = wp_media_categories_get_media_category_options(); $media_cat_args['show_count'] = $c; $media_cat_args['hierarchical'] = $h; $media_cat_args = array('taxonomy' => 'media_category', 'orderby' => 'name', 'show_count' => $c, 'hierarchical' => $h); if (!empty($d)) { static $first_dropdown = true; $dropdown_id = true === $first_dropdown ? 'media_category' : "{$this->id_base}-dropdown-{$this->number}"; $first_dropdown = false; echo '<label class="screen-reader-text" for="' . esc_attr($dropdown_id) . '">' . $title . '</label>'; $media_cat_args['show_option_none'] = __('Select Category', 'wp-media-categories'); $media_cat_args['id'] = $dropdown_id; $media_cat_args['value_field'] = 'slug'; /** * Filter the arguments for the Categories widget drop-down. * * @since 1.6.0 * * @see wp_dropdown_categories() * * @param array $media_cat_args An array of Categories widget drop-down arguments. */ wp_dropdown_categories(apply_filters('wp_media_categories_widget_categories_dropdown_args', $media_cat_args)); ?> <script type='text/javascript'> /* <![CDATA[ */ (function() { var dropdown = document.getElementById( "<?php echo esc_js($dropdown_id); ?> " ); function onMediaCatChange() { if ( dropdown.options[ dropdown.selectedIndex ].value !== -1 ) { location.href = "<?php echo home_url() . '/' . $media_taxonomy; ?> /" + dropdown.options[ dropdown.selectedIndex ].value; } } dropdown.onchange = onMediaCatChange; })(); /* ]]> */ </script> <?php } else { ?> <ul> <?php $media_cat_args['title_li'] = ''; /** * Filter the arguments for the Media Categories widget. * * @since 1.6.0 * * @param array $media_cat_args An array of Media Categories widget options. */ wp_list_categories(apply_filters('wp_media_categories_widget_categories_args', $media_cat_args)); ?> </ul> <?php } echo $args['after_widget']; }