Created
March 28, 2015 18:51
-
-
Save webmasterninjay/b36bd3a31890f2da8005 to your computer and use it in GitHub Desktop.
Wordpress: Genesis Child Theme Option Framework
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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