askdesign
1/23/2017 - 9:37 PM

The Comprehensive Guide to Genesis Theme Supports

January 23, 2017 by Sridhar Katakam

// Add support for post formats
add_theme_support( 'post-formats', array(
    'aside',
    'audio',
    'chat',
    'gallery',
    'image',
    'link',
    'quote',
    'status',
    'video'
) );

// Add support for post format images
add_theme_support( 'genesis-post-format-images' );
// Remove Breadcrumbs from theme settings
remove_theme_support( 'genesis-breadcrumbs' );
// Remove Genesis menu link
remove_theme_support( 'genesis-admin-menu' );

// Remove Genesis SEO Settings menu link
remove_theme_support( 'genesis-seo-settings-menu' );

// Remove Import/Export admin menu item
remove_theme_support( 'genesis-import-export-menu' );
// Remove Genesis Layout Settings
remove_theme_support( 'genesis-inpost-layouts' );

// Remove Genesis Archive Layouts
remove_theme_support( 'genesis-archive-layouts' );
// Add support for custom background
add_theme_support( 'custom-background' );
// Add support for custom header
add_theme_support( 'custom-header', array(
    'width'           => 600,
    'height'          => 160,
    'header-selector' => '.site-title a',
    'header-text'     => false,
    'flex-height'     => true,
) );
// Add viewport meta tag for mobile browsers
add_theme_support( 'genesis-responsive-viewport' );
// Add Accessibility support
add_theme_support( 'genesis-accessibility', array( '404-page', 'drop-down-menu', 'headings', 'rems', 'search-form', 'skip-links' ) );
// Add HTML5 markup structure
add_theme_support( 'html5', array( 'caption', 'comment-form', 'comment-list', 'gallery', 'search-form' ) );
// Remove SEO, Scripts and Layouts meta boxes for post types in the WP editor

add_action( 'init', 'custom_post_type_support', 11 );
function custom_post_type_support() {
    // remove_post_type_support( 'page', array( 'genesis-seo', 'genesis-scripts', 'genesis-layouts' ) );
    remove_post_type_support( 'post-type', 'genesis-seo' );
    remove_post_type_support( 'post-type', 'genesis-scripts' );
    remove_post_type_support( 'post-type', 'genesis-layouts' );
}
// Add Theme Support for Genesis Menus
add_theme_support( 'genesis-menus', array(
    'primary'   => __( 'Primary Navigation Menu', 'genesis' ),
    'secondary' => __( 'Secondary Navigation Menu', 'genesis' ),
    'header'    => __( 'Header Navigation Menu', 'genesis' ),
) );

// Ex.: To change “Primary Navigation Menu” label to “Main Menu” and to unregister Secondary Navigation Menu:

// Add Theme Support for Genesis Menus
add_theme_support( 'genesis-menus', array(
    'primary'   => __( 'Main Menu', 'genesis' ),
    'header'    => __( 'Header Navigation Menu', 'genesis' ),
) );
// Add support for after entry widget
add_theme_support( 'genesis-after-entry-widget-area' );
// Add support for structural wraps
add_theme_support( 'genesis-structural-wraps', array(
    'header',
    'menu-primary',
    'menu-secondary',
    'site-inner',
    'footer-widgets',
    'footer'
) );

// Ex.: To remove .site-inner’s .wrap:

// Add support for structural wraps
add_theme_support( 'genesis-structural-wraps', array(
    'header',
    'menu-primary',
    'menu-secondary',
    // 'site-inner',
    'footer-widgets',
    'footer'
) );

// To remove support for all structural wraps at once:

// Remove support for structural wraps
remove_theme_support( 'genesis-structural-wraps' );
add_action( 'init', 'sample_remove_entry_meta', 11 );
/**
 * Remove entry meta for post types
 * 
 * @link https://gist.github.com/nathanrice/03a5871e5e5a27f22747
 */
function sample_remove_entry_meta() {
    remove_post_type_support( 'post-type', 'genesis-entry-meta-before-content' );
    remove_post_type_support( 'post-type', 'genesis-entry-meta-after-content' );
}

// To remove entry meta in the entry footer for posts:

add_action( 'init', 'sample_remove_entry_meta', 11 );
/**
 * Remove entry meta for posts
 *
 * @link https://gist.github.com/nathanrice/03a5871e5e5a27f22747
 */
function sample_remove_entry_meta() {
    remove_post_type_support( 'post', 'genesis-entry-meta-after-content' );
}
// Add Category support to CPT
add_action( 'init', 'sk_add_category_portfolio' );
function sk_add_category_portfolio() {
    register_taxonomy_for_object_type( 'category', 'portfolio' );
}
// Add SEO, Scripts and Layouts meta boxes for a CPT in the WP editor
add_post_type_support( 'portfolio', array( 'genesis-seo', 'genesis-scripts', 'genesis-layouts' ) );

// Reference: https://sridharkatakam.com/adding-support-for-genesis-seo-and-other-features-to-cpt-entries-in-genesis/
// Add support for Layouts to a CPT's single entries
add_post_type_support( 'portfolio', 'genesis-layouts' );
// Add Archive Settings option to Portfolio CPT
add_post_type_support( 'portfolio', 'genesis-cpt-archives-settings' );
// https://sridharkatakam.com/comprehensive-guide-genesis-theme-supports/

// Add support for 4-column footer widgets
add_theme_support( 'genesis-footer-widgets', 4 );