Use this handy helper class to easily Override Genesis Theme Settings and remove theme metaboxes.
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 | |
/** | |
* Using the Genesis Settings Helper Class | |
* | |
* @version 1.0.0 | |
* @author Joshua David Nelson, [email protected] | |
* @license GPLv2.0+ | |
*/ | |
// Reference the helper class by uncommenting below and setting it to the path relative to this file | |
// require_once '/path/to/genesis-settings-override.php'; | |
add_action( 'init', 'jdn_set_theme_options' ); | |
function jdn_set_theme_options() { | |
if( class_exists( 'JDN_Override_Genesis_Settings' ) ) { | |
$override = new JDN_Override_Genesis_Settings; | |
// Override Theme Settings - these are all the defaults | |
$options = array( | |
'update' => 1, | |
'blog_title' => 'text', // or 'image' | |
'header_right' => 0, | |
'site_layout' => genesis_get_default_layout(), | |
'superfish' => 0, | |
'nav_extras' => '', | |
'nav_extras_twitter_id' => '', | |
'nav_extras_twitter_text' => __( 'Follow me on Twitter', 'genesis' ), | |
'feed_uri' => '', | |
'comments_feed_uri' => '', | |
'redirect_feeds' => 0, | |
'comments_pages' => 0, | |
'comments_posts' => 1, | |
'trackbacks_pages' => 0, | |
'trackbacks_posts' => 1, | |
'breadcrumb_home' => 0, | |
'breadcrumb_front_page' => 0, | |
'breadcrumb_posts_page' => 0, | |
'breadcrumb_single' => 0, | |
'breadcrumb_page' => 0, | |
'breadcrumb_archive' => 0, | |
'breadcrumb_404' => 0, | |
'breadcrumb_attachment' => 0, | |
'content_archive' => 'full', // or 'excerpts' | |
'content_archive_thumbnail' => 0, | |
'posts_nav' => 'older-newer', // or 'numeric' | |
'blog_cat' => '', | |
'blog_cat_exclude' => '', | |
'blog_cat_num' => 10, | |
'header_scripts' => '', | |
'footer_scripts' => '', | |
'image_size' => 'full', // or any other registered image size | |
'image_alignment' => '', // blank, 'alignleft' or 'alignright' | |
); | |
$override->set_options( $options ); | |
// Remove Theme Settings Metaboxes | |
$metaboxes = array( 'breadcrumb', 'feeds', 'header', 'nav', 'breadcrumb', 'comments', 'posts', 'blogpage', 'scripts', 'version' ); | |
$override->remove_metaboxes( $metaboxes ); | |
} | |
} |
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 | |
/** | |
* Override theme settings and remove theme settings metaboxes with this helper class | |
* | |
* Requires WordPress v2.6.0 and PHP v5.3.0 | |
* | |
* @version 2.0.0 | |
* @author Joshua David Nelson, [email protected] | |
* @license GPLv2.0+ | |
* | |
* Copyirght 2015, Joshua David Nelson | |
*/ | |
class JDN_Override_Genesis_Settings { | |
// The array of options to set | |
private $options = array(); | |
// The array of metaboxes to remove | |
private $metaboxes = array(); | |
// The current option to be set | |
private $current_option = ''; | |
// The current metabox to be removed | |
private $current_metabox = ''; | |
// Set Genesis Theme Options with array | |
public function set_options( $these_options ) { | |
if( !is_array( $these_options ) ) | |
return; | |
$this->options = $these_options; | |
foreach( $this->options as $option => $value ) { | |
$this->current_option = $option; | |
add_filter( "genesis_pre_get_option_{$option}", array( $this, $option ), 10, 1 ); | |
} | |
} | |
//Override Theme Option with new value using the magic call method | |
public function __call( $func, $params ) { | |
if( in_array( $func, $this->options ) ) { | |
return $this->get_value( $func ); | |
} else { | |
return $params; | |
} | |
} | |
// Get the option's new value | |
private function get_value( $option ) { | |
if( array_key_exists( $option, $this->options ) ) { | |
return $this->options[ $option ]; | |
} else { | |
return null; | |
} | |
} | |
// Remove a group of metaboxes | |
public function remove_metaboxes( $metaboxes ) { | |
if( !is_array( $metaboxes ) ) | |
return; | |
// Set metaboxes | |
$this->metaboxes = $metaboxes; | |
// Add action | |
add_action( 'genesis_theme_settings_metaboxes', array( $this, 'remove_genesis_metaboxes' ) ); | |
} | |
// Remove genesis theme settings metaboxes | |
public function remove_genesis_metaboxes( $_genesis_theme_settings_pagehook ) { | |
foreach( $this->metaboxes as $metabox ) { | |
remove_meta_box( "genesis-theme-settings-{$metabox}", $_genesis_theme_settings_pagehook, 'main' ); | |
} | |
} | |
} |
Source: https://gist.github.com/joshuadavidnelson/1aefa78ef7eba90f4de0