/** * Register settings fields. * * Fires upon admin_init. * * @return void */ function stagtools_register_settings() { if (false == get_option('stag_options')) { add_option('stag_options'); } foreach (stagtools_get_registered_settings() as $tab => $settings) { add_settings_section('stagtools_settings_' . $tab, __return_null(), '__return_false', 'stagtools_settings_' . $tab); foreach ($settings as $option) { add_settings_field('stagtools_settings[' . $option['id'] . ']', $option['name'], function_exists('stagtools_' . $option['type'] . '_callback') ? 'stagtools_' . $option['type'] . '_callback' : 'stagtools_missing_callback', 'stagtools_settings_' . $tab, 'stagtools_settings_' . $tab, array('id' => $option['id'], 'desc' => !empty($option['desc']) ? $option['desc'] : '', 'name' => $option['name'], 'section' => $tab, 'size' => isset($option['size']) ? $option['size'] : null, 'options' => isset($option['options']) ? $option['options'] : '', 'std' => isset($option['std']) ? $option['std'] : '')); } } register_setting('stag_options', 'stag_options', 'stagtools_settings_sanitize'); }
/** * Social shortcode. * * Display links to social profiles. * * @since 1.2 */ function stag_social($atts) { extract(shortcode_atts(array('id' => 'all', 'style' => 'normal'), $atts)); $registered_settings = stagtools_get_registered_settings(); $social_urls = array_keys($registered_settings['social']); $settings = get_option('stag_options'); $output = '<div class="stag-social-icons ' . $style . '">'; if ($id == '' || $id == "all") { $id = $social_urls; } else { $id = explode(',', $id); } foreach ($id as $slug) { $slug = trim($slug); if (isset($settings[$slug]) && $settings[$slug] != '') { $class = $slug; if ('mail' == $slug) { $class = 'envelope'; } if ('vimeo' == $slug) { $class = 'vimeo-square'; } $output .= "<a href='" . esc_url($settings[$slug]) . "' target='_blank'><i class='fa fa-{$class}'></i></a>"; } } $output .= "</div>"; return $output; }