array( 'default' => 'default', 'sanitize' => 'FILTER_DEFAULT', ), 'site-sidebar-layout' => array( 'default' => 'default', 'sanitize' => 'FILTER_DEFAULT', ), 'bst-main-header-display' => array( 'sanitize' => 'FILTER_DEFAULT', ), 'site-post-title' => array( 'sanitize' => 'FILTER_DEFAULT', ), 'bst-featured-img' => array( 'sanitize' => 'FILTER_DEFAULT', ), 'bst-footer-top-area' => array( 'sanitize' => 'FILTER_DEFAULT', ), 'bst-footer-bottom-area' => array( 'sanitize' => 'FILTER_DEFAULT', ), ) ); } /** * Setup Metabox */ function setup_meta_box() { // Get all public posts. $post_types = get_post_types( array( 'public' => true, ) ); $current_theme = wp_get_theme(); $metabox_name = esc_html( $current_theme->get( 'Name' ) ) . __( ' Settings', 'bstone' ); // Enable for all posts. foreach ( $post_types as $type ) { if ( 'attachment' !== $type ) { add_meta_box( 'bstone_settings_meta_box', // Id. $metabox_name, // Title. array( $this, 'markup_meta_box' ), // Callback. $type, // Post_type. 'side', // Context. 'default' // Priority. ); } } } /** * Get metabox options */ public static function get_meta_option() { return self::$meta_option; } /** * Metabox Markup * * @param object $post Post object. * @return void */ function markup_meta_box( $post ) { wp_nonce_field( basename( __FILE__ ), 'bstone_settings_meta_box' ); $stored = get_post_meta( $post->ID ); // Set stored and override defaults. foreach ( $stored as $key => $value ) { self::$meta_option[ $key ]['default'] = ( isset( $stored[ $key ][0] ) ) ? $stored[ $key ][0] : ''; } // Get defaults. $meta = self::get_meta_option(); /** * Get options */ $site_sidebar = ( isset( $meta['site-sidebar-layout']['default'] ) ) ? $meta['site-sidebar-layout']['default'] : 'default'; $site_content_layout = ( isset( $meta['site-content-layout']['default'] ) ) ? $meta['site-content-layout']['default'] : 'default'; $primary_header = ( isset( $meta['bst-main-header-display']['default'] ) ) ? $meta['bst-main-header-display']['default'] : ''; $site_post_title = ( isset( $meta['site-post-title']['default'] ) ) ? $meta['site-post-title']['default'] : ''; $bst_featured_img = ( isset( $meta['bst-featured-img']['default'] ) ) ? $meta['bst-featured-img']['default'] : ''; $footer_top_area = ( isset( $meta['bst-footer-top-area']['default'] ) ) ? $meta['bst-footer-top-area']['default'] : ''; $footer_bottom_area = ( isset( $meta['bst-footer-bottom-area']['default'] ) ) ? $meta['bst-footer-bottom-area']['default'] : ''; do_action( 'bstone_meta_box_markup_before', $meta ); /** * Option: Content Layout */ ?>
$data ) { // Sanitize values. $sanitize_filter = ( isset( $data['sanitize'] ) ) ? $data['sanitize'] : 'FILTER_DEFAULT'; switch ( $sanitize_filter ) { case 'FILTER_SANITIZE_STRING': $meta_value = filter_input( INPUT_POST, $key, FILTER_SANITIZE_STRING ); break; case 'FILTER_SANITIZE_URL': $meta_value = filter_input( INPUT_POST, $key, FILTER_SANITIZE_URL ); break; case 'FILTER_SANITIZE_NUMBER_INT': $meta_value = filter_input( INPUT_POST, $key, FILTER_SANITIZE_NUMBER_INT ); break; default: $meta_value = filter_input( INPUT_POST, $key, FILTER_DEFAULT ); break; } // Store values. if ( $meta_value ) { update_post_meta( $post_id, $key, $meta_value ); } else { delete_post_meta( $post_id, $key ); } } } } } /** * Kicking this off by calling 'get_instance()' method */ Bstone_Meta_Boxes::get_instance();