true, 'result_count' => 16, 'query_highlight' => false, 'post_types' => array( 'post', 'page', 'attachment' ), 'include_admin_pages' => true, 'include_terms' => true, 'include_comments' => true ); $settings = array(); if ( get_option( 'admin_search_settings' ) !== null ) { $settings = get_option( 'admin_search_settings' ); } foreach ( $default_settings as $default_setting_name => $default_setting_value ) { if ( ! isset( $settings[ $default_setting_name ] ) ) { $settings[ $default_setting_name ] = $default_setting_value; } } if ( isset( $settings[ $name ] ) ) { return $settings[ $name ]; } return null; } /* * Add plugin settings page */ function admin_search_add_settings_page() { add_options_page( __( 'Admin Search Settings', 'admin-search' ), __( 'Admin Search', 'admin-search' ), 'manage_options', 'admin-search', 'admin_search_render_plugin_settings_page' ); } add_action( 'admin_menu', 'admin_search_add_settings_page' ); /* * Add plugin settings fields */ function admin_search_settings_init() { register_setting( 'admin_search', 'admin_search_settings', array( 'sanitize_callback' => 'admin_search_sanitize_setting_values' ) ); // General settings add_settings_section( 'admin_search_section_general', __( 'General', 'admin-search' ), '', 'admin-search' ); add_settings_field( 'display_on_keypress', __( 'Display on Keypress', 'admin-search' ), 'admin_search_setting_display_on_keypress', 'admin-search', 'admin_search_section_general' ); add_settings_field( 'result_count', __( 'Result Count', 'admin-search' ), 'admin_search_setting_result_count', 'admin-search', 'admin_search_section_general' ); add_settings_field( 'highlight_query', __( 'Query Highlighting', 'admin-search' ), 'admin_search_setting_highlight_query', 'admin-search', 'admin_search_section_general' ); // Source settings add_settings_section( 'admin_search_section_sources', __( 'Sources', 'admin-search' ), 'admin_search_section_sources_text', 'admin-search' ); add_settings_field( 'post_types', __( 'Post Types', 'admin-search' ), 'admin_search_setting_post_types', 'admin-search', 'admin_search_section_sources' ); add_settings_field( 'include_admin_pages', __( 'Admin Pages', 'admin-search' ), 'admin_search_setting_include_admin_pages', 'admin-search', 'admin_search_section_sources' ); add_settings_field( 'include_terms', __( 'Taxonomy', 'admin-search' ), 'admin_search_setting_include_terms', 'admin-search', 'admin_search_section_sources' ); add_settings_field( 'include_comments', __( 'Comments', 'admin-search' ), 'admin_search_setting_include_comments', 'admin-search', 'admin_search_section_sources' ); } add_action( 'admin_init', 'admin_search_settings_init' ); /* * Add plugin settings link to plugin item on Plugins page */ function admin_search_settings_page_link( $links ) { $links[] = '' . __( 'Settings', 'admin-search' ) . ''; return $links; } add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'admin_search_settings_page_link' ); /* * Render plugin settings page */ function admin_search_render_plugin_settings_page() { ?>
" . __( 'If enabled, the admin search will not be triggered if an input field is in focus. The admin search can be opened anytime by clicking the search icon in the admin bar or pressing Ctrl + S or Command + S.', 'admin-search' ) . "