'array', 'sanitize_callback' => array($this, 'sanitize_post_types'), 'default' => array(), )); register_setting('ajax_searchwp_settings', 'ajax_searchwp_search_placeholder', array( 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', 'default' => __('Search here...', 'ajax-searchwp'), )); register_setting('ajax_searchwp_settings', 'ajax_searchwp_limit', array( 'type' => 'integer', 'sanitize_callback' => 'absint', 'default' => 5, )); register_setting('ajax_searchwp_settings', 'ajax_searchwp_no_results_text', array( 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', 'default' => __('No results found', 'ajax-searchwp'), )); add_settings_section( 'ajax_searchwp_main_section', __('Main Settings', 'ajax-searchwp'), null, 'ajax_searchwp_settings' ); add_settings_field( 'ajax_searchwp_post_types', __('Select Post Types to Include in Search', 'ajax-searchwp'), array($this, 'ajax_searchwp_post_types_render'), 'ajax_searchwp_settings', 'ajax_searchwp_main_section' ); add_settings_field( 'ajax_searchwp_search_placeholder', __('Search Input Placeholder', 'ajax-searchwp'), array($this, 'ajax_searchwp_search_placeholder_render'), 'ajax_searchwp_settings', 'ajax_searchwp_main_section' ); add_settings_field( 'ajax_searchwp_limit', __('Limit', 'ajax-searchwp'), array($this, 'ajax_searchwp_limit_render'), 'ajax_searchwp_settings', 'ajax_searchwp_main_section' ); add_settings_field( 'ajax_searchwp_no_results_text', __('No Results Text', 'ajax-searchwp'), array($this, 'ajax_searchwp_no_results_text_render'), 'ajax_searchwp_settings', 'ajax_searchwp_main_section' ); } public function sanitize_post_types($input) { if (!is_array($input)) { $input = array(); } return array_map('sanitize_text_field', $input); } public function ajax_searchwp_post_types_render() { $selected_post_types = get_option('ajax_searchwp_post_types', array()); $post_types = get_post_types(array('public' => true), 'objects'); echo '
'; foreach ($post_types as $post_type) { $checked = in_array($post_type->name, $selected_post_types) ? 'checked="checked"' : ''; echo '
'; } echo '
'; } public function ajax_searchwp_search_placeholder_render() { $search_placeholder = get_option('ajax_searchwp_search_placeholder', __('Search here...', 'ajax-searchwp')); echo ''; } public function ajax_searchwp_limit_render() { $limit = get_option('ajax_searchwp_limit', 5); echo ''; } public function ajax_searchwp_no_results_text_render() { $no_results_text = get_option('ajax_searchwp_no_results_text', __('No results found', 'ajax-searchwp')); echo ''; } public function ajax_searchwp_settings_page() { ?>