Skip to content

Instantly share code, notes, and snippets.

@webmasterninjay
Created March 28, 2015 18:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save webmasterninjay/b36bd3a31890f2da8005 to your computer and use it in GitHub Desktop.
Save webmasterninjay/b36bd3a31890f2da8005 to your computer and use it in GitHub Desktop.
Wordpress: Genesis Child Theme Option Framework
<?php
define('COMPASSIONATE_SETTINGS_FIELD','compassionate-settings');
class COMPASSIONATE_THEME_SETTINGS extends Genesis_Admin_Boxes {
function __construct() {
$page_id = 'compassionate';
$menu_ops = array(
'submenu' => array(
'parent_slug' => 'genesis',
'page_title' => 'Compassionate Theme Settings',
'menu_title' => 'Compassionate Settings',
)
);
$page_ops = array(
'screen_icon' => 'options-general',
'save_button_text' => 'Save Settings',
'reset_button_text' => 'Reset Settings',
'save_notice_text' => 'Your Settings has been saved.',
'reset_notice_text' => 'Your Settings has been reset.',
);
$settings_field = 'compassionate-settings';
$default_settings = array(
'compassionate-facebook' => '',
'compassionate-twitter' => '',
'compassionate-phone' => '',
'compassionate-appointment' => '',
);
$this->create( $page_id, $menu_ops, $page_ops, $settings_field, $default_settings );
add_action( 'genesis_settings_sanitizer_init', array( $this, 'sanitization_filters' ) );
}
// SANITIZATION
function sanitization_filters() {
genesis_add_option_filter( 'safe_html', $this->settings_field, array(
'compassionate-facebook',
'compassionate-twitter',
'compassionate-phone',
'compassionate-appointment'
)
);
}
// HELP TAB
function help() {
$screen = get_current_screen();
$screen->add_help_tab( array(
'id' => 'compassionate-help',
'title' => 'compassionate Theme Help',
'content' => '<p>No help option for Compassionate Theme.</p><p>- Jayson Antipuesto</p>',
) );
}
// METABOXES
function metaboxes() {
add_meta_box('company_metabox', 'Company Details', array( $this, 'company_metabox' ), $this->pagehook, 'main', 'high');
add_meta_box('social_metabox', 'Social Media Options', array( $this, 'social_metabox' ), $this->pagehook, 'main', 'high');
}
// SOCIAL METABOX CALLBACK
function social_metabox() { ?>
<p><?php _e( 'Facebook URL:', 'compassionate' );?><br />
<input type="text" name="<?php echo COMPASSIONATE_SETTINGS_FIELD; ?>[compassionate-facebook]" value="<?php echo esc_url( genesis_get_option('compassionate-facebook', 'compassionate-settings') ); ?>" size="50" class="widefat" /> </p>
<p><?php _e( 'Twitter URL:', 'compassionate' );?><br />
<input type="text" name="<?php echo COMPASSIONATE_SETTINGS_FIELD; ?>[compassionate-twitter]" value="<?php echo esc_url( genesis_get_option('compassionate-twitter', 'compassionate-settings') ); ?>" size="50" class="widefat" /> </p>
<?php }
// COMPANY METABOX CALLBACK
function company_metabox() { ?>
<p><?php _e( 'Company Phone #:', 'compassionate' );?><br />
<input type="text" name="<?php echo COMPASSIONATE_SETTINGS_FIELD; ?>[compassionate-phone]" value="<?php echo strip_tags( genesis_get_option('compassionate-phone', 'compassionate-settings') ); ?>" size="50" class="widefat" /> </p>
<p><?php _e( 'Set Appointment URL:', 'compassionate' );?><br />
<input type="text" name="<?php echo COMPASSIONATE_SETTINGS_FIELD; ?>[compassionate-appointment]" value="<?php echo esc_url( genesis_get_option('compassionate-appointment', 'compassionate-settings') ); ?>" size="50" class="widefat" /> </p>
<?php }
}
function compassionate_child_theme_settings() {
global $_child_theme_settings;
$_child_theme_settings = new COMPASSIONATE_THEME_SETTINGS;
}
add_action( 'genesis_admin_menu', 'compassionate_child_theme_settings' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment