do_action( ‘after_setup_theme’ )

Fires after the theme is loaded.

More Information

This hook is called during each page load, after the theme is initialized. It is generally used to perform basic setup, registration, and init actions for a theme.

Source

do_action( 'after_setup_theme' );

Changelog

VersionDescription
3.0.0Introduced.

User Contributed Notes

  1. Skip to note 5 content

    This Hook is called when each page is loaded after theme is initialised. This is used for the basic theme setup, registration of the theme features and init hooks. The basic use of this hook can be seen on the default themes that comes with WordPress Installation.

    Following is the example code from twentyfifteen default theme.

    if ( ! function_exists( 'twentyfifteen_setup' ) ) :
    /**
     * Sets up theme defaults and registers support for various WordPress features.
     *
     * Note that this function is hooked into the after_setup_theme hook, which
     * runs before the init hook. The init hook is too late for some features, such
     * as indicating support for post thumbnails.
     *
     * @since Twenty Fifteen 1.0
     */
    function twentyfifteen_setup() {
    
    	/*
    	 * Make theme available for translation.
    	 * Translations can be filed in the /languages/ directory.
    	 * If you're building a theme based on twentyfifteen, use a find and replace
    	 * to change 'twentyfifteen' to the name of your theme in all the template files
    	 */
    	load_theme_textdomain( 'twentyfifteen', get_template_directory() . '/languages' );
    
    	// Add default posts and comments RSS feed links to head.
    	add_theme_support( 'automatic-feed-links' );
    
    	/*
    	 * Let WordPress manage the document title.
    	 * By adding theme support, we declare that this theme does not use a
    	 * hard-coded  tag in the document head, and expect WordPress to
    	 * provide it for us.
    	 */
    	add_theme_support( 'title-tag' );
    
    	/*
    	 * Enable support for Post Thumbnails on posts and pages.
    	 *
    	 * See: https://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
    	 */
    	add_theme_support( 'post-thumbnails' );
    	set_post_thumbnail_size( 825, 510, true );
    
    	// This theme uses wp_nav_menu() in two locations.
    	register_nav_menus( array(
    		'primary' => __( 'Primary Menu',      'twentyfifteen' ),
    		'social'  => __( 'Social Links Menu', 'twentyfifteen' ),
    	) );
    
    	/*
    	 * Switch default core markup for search form, comment form, and comments
    	 * to output valid HTML5.
    	 */
    	add_theme_support( 'html5', array(
    		'search-form', 'comment-form', 'comment-list', 'gallery', 'caption'
    	) );
    
    	/*
    	 * Enable support for Post Formats.
    	 *
    	 * See: https://codex.wordpress.org/Post_Formats
    	 */
    	add_theme_support( 'post-formats', array(
    		'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat'
    	) );
    
    	$color_scheme  = twentyfifteen_get_color_scheme();
    	$default_color = trim( $color_scheme[0], '#' );
    
    	// Setup the WordPress core custom background feature.
    	add_theme_support( 'custom-background', apply_filters( 'twentyfifteen_custom_background_args', array(
    		'default-color'      => $default_color,
    		'default-attachment' => 'fixed',
    	) ) );
    
    	/*
    	 * This theme styles the visual editor to resemble the theme style,
    	 * specifically font, colors, icons, and column width.
    	 */
    	add_editor_style( array( 'css/editor-style.css', 'genericons/genericons.css', twentyfifteen_fonts_url() ) );
    }
    endif; // twentyfifteen_setup
    add_action( 'after_setup_theme', 'twentyfifteen_setup' );
  2. Skip to note 6 content

    Themes can register their own editor colors and optionally lock users into picking from the defined palette.

    /**
     * Overwrite block editor’s default color palette. 
     *
     * @return void
     */
    function prefix_editor_color_palette() {
    	add_theme_support( 'editor-color-palette', array(
    		array(
    		    'name'  => __( 'Storm Gray', 'themeLangDomain' ),
    		    'slug'  => 'storm-gray',
    		    'color' => '#6B6F82',
    		),
    		array(
    		    'name'  => __( 'Martinique', 'themeLangDomain' ),
    		    'slug'  => 'martinique',
    		    'color' => '#2D2E4F',
    		),
    		array(
    		    'name'  => __( 'Cornflower Blue', 'themeLangDomain' ),
    		    'slug'  => 'cornflower-blue',
    		    'color' => '#666EE8',
    		),
    		array(
    		    'name'  => __( 'Radical Red', 'themeLangDomain' ),
    		    'slug'  => 'radical-red',
    		    'color' => '#FF4961',
    		),
        ) );
    }
    add_action( 'after_setup_theme', 'prefix_editor_color_palette' );
  3. Skip to note 8 content

    Feel free to copy and paste this code into your functions.php file for a basic setup(common line for every wp theme ) –

    <?php
    function wpdocs_theme_setup() {
    	load_theme_textdomain( 'wpdocs_textdemain' );
    	
    	add_theme_support( 'title-tag' );
    	add_theme_support( 'post-thumbnails' );
    	
    	add_theme_support( 'post-formats', array(
    		'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat',
    	) );
    	
    	add_theme_support( 'html5', array(
    		'search-form', 'comment-form', 'comment-list',
    	) );
    	
    	add_editor_style( 'assets/css/editor-style.css' );
    }
    add_action( 'after_setup_theme', 'wpdocs_theme_setup' );

You must log in before being able to contribute a note or feedback.