function check_setup_settings(&$settings = array()) { if (isset($settings['show_on'])) { $invalid_settings = array_diff_key($settings['show_on'], $this->settings['show_on']); if (!empty($invalid_settings)) { throw new Resume_Exception('Invalid show_on settings supplied to setup(): "' . implode('", "', array_keys($invalid_settings)) . '"'); } } if (isset($settings['show_on']['post_formats'])) { $settings['show_on']['post_formats'] = (array) $settings['show_on']['post_formats']; } if (isset($settings['show_on']['post_path'])) { $page = get_page_by_path($settings['show_on']['post_path']); if ($page) { $settings['show_on']['page_id'] = $page->ID; } else { $settings['show_on']['page_id'] = -1; } } // Transform category slug to taxonomy + term slug + term id if (isset($settings['show_on']['category'])) { $term = get_term_by('slug', $settings['show_on']['category'], 'category'); if ($term) { $settings['show_on']['tax_slug'] = $term->taxonomy; $settings['show_on']['tax_term'] = $term->slug; $settings['show_on']['tax_term_id'] = $term->term_id; } } return parent::check_setup_settings($settings); }