Skip to content

Instantly share code, notes, and snippets.

@craigsimps
Created January 8, 2016 23:37
Show Gist options
  • Save craigsimps/4ee7f25901b2956260bc to your computer and use it in GitHub Desktop.
Save craigsimps/4ee7f25901b2956260bc to your computer and use it in GitHub Desktop.
Example adding a meta box to CPT Archive Settings page, saving and loading values.
<?php
add_filter( 'genesis-cpt-archive-snippet', 'cs_add_additional_field' );
/**
* Add additional field to the Genesis CPT Archive Settings array for snippet post type.
*
* @param array $default_settings
* @return array modified default_settings
*
*/
function cs_add_additional_field( $default_settings ) {
$default_settings['additional_field_name'] = '';
return $default_settings;
}
add_action( 'genesis_settings_sanitizer_init', 'cs_register_additional_sanitization_filters' );
/**
* Add Sanitization using Genesis Add Option Filter
*/
function cs_register_additional_sanitization_filters() {
genesis_add_option_filter( 'no_html', 'genesis-cpt-archive-settings-snippet',
array(
'additional_field_name',
) );
}
add_action('genesis_cpt_archives_settings_metaboxes', 'cs_register_additional_settings_box');
/**
* Register Additional Metabox
*
* @param string $_genesis_theme_settings_pagehook
*/
function cs_register_additional_settings_box( $_genesis_theme_settings_pagehook ) {
if ( 'snippet_page_genesis-cpt-archive-snippet' !== $_genesis_theme_settings_pagehook ) {
return;
}
add_meta_box('cs-additional-settings', 'Additional Settings Box', 'cs_additional_settings_box', $_genesis_theme_settings_pagehook, 'main', 'high');
}
/**
* Create Metabox function, called from cs_register_additional_settings_box
*/
function cs_additional_settings_box() {
?>
<p>Additional Field:<br />
<input type="text" name="genesis-cpt-archive-settings-snippet[additional_field_name]" value="<?php echo esc_attr( genesis_get_option('additional_field_name', 'genesis-cpt-archive-settings-snippet') ); ?>" size="50" /> </p>
<?php
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment