Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




add_theme_support [ WordPress Function ]

add_theme_support ( $feature )
Parameters:
  • (string) $feature the feature being added
Defined at:



Allows a theme to register its support of a certain feature

Must be called in the theme's functions.php file to work. If attached to a hook, it must be after_setup_theme. The init hook may be too late for some features.

Source


<?php
function add_theme_support$feature ) {
    global 
$_wp_theme_features;

    if ( 
func_num_args() == )
        
$args true;
    else
        
$args array_slicefunc_get_args(), );

    switch ( 
$feature ) {
        case 
'post-formats' :
            if ( 
is_array$args[0] ) )
                
$args[0] = array_intersect$args[0], array_keysget_post_format_slugs() ) );
            break;

        case 
'custom-header-uploads' :
            return 
add_theme_support'custom-header', array( 'uploads' => true ) );
            break;

        case 
'custom-header' :
            if ( ! 
is_array$args ) )
                
$args = array( => array() );

            
$defaults = array(
                
'default-image' => '',
                
'random-default' => false,
                
'width' => 0,
                
'height' => 0,
                
'flex-height' => false,
                
'flex-width' => false,
                
'default-text-color' => '',
                
'header-text' => true,
                
'uploads' => true,
                
'wp-head-callback' => '',
                
'admin-head-callback' => '',
                
'admin-preview-callback' => '',
            );

            
$jit = isset( $args[0]['__jit'] );
            unset( 
$args[0]['__jit'] );

            
// Merge in data from previous add_theme_support() calls.
            // The first value registered wins. (A child theme is set up first.)
            
if ( isset( $_wp_theme_features['custom-header'] ) )
                
$args[0] = wp_parse_args$_wp_theme_features['custom-header'][0], $args[0] );

            
// Load in the defaults at the end, as we need to insure first one wins.
            // This will cause all constants to be defined, as each arg will then be set to the default.
            
if ( $jit )
                
$args[0] = wp_parse_args$args[0], $defaults );

            
// If a constant was defined, use that value. Otherwise, define the constant to ensure
            // the constant is always accurate (and is not defined later,  overriding our value).
            // As stated above, the first value wins.
            // Once we get to wp_loaded (just-in-time), define any constants we haven't already.
            // Constants are lame. Don't reference them. This is just for backwards compatibility.

            
if ( defined'NO_HEADER_TEXT' ) )
                
$args[0]['header-text'] = ! NO_HEADER_TEXT;
            elseif ( isset( 
$args[0]['header-text'] ) )
                
define'NO_HEADER_TEXT', empty( $args[0]['header-text'] ) );

            if ( 
defined'HEADER_IMAGE_WIDTH' ) )
                
$args[0]['width'] = (int) HEADER_IMAGE_WIDTH;
            elseif ( isset( 
$args[0]['width'] ) )
                
define'HEADER_IMAGE_WIDTH', (int) $args[0]['width'] );

            if ( 
defined'HEADER_IMAGE_HEIGHT' ) )
                
$args[0]['height'] = (int) HEADER_IMAGE_HEIGHT;
            elseif ( isset( 
$args[0]['height'] ) )
                
define'HEADER_IMAGE_HEIGHT', (int) $args[0]['height'] );

            if ( 
defined'HEADER_TEXTCOLOR' ) )
                
$args[0]['default-text-color'] = HEADER_TEXTCOLOR;
            elseif ( isset( 
$args[0]['default-text-color'] ) )
                
define'HEADER_TEXTCOLOR'$args[0]['default-text-color'] );

            if ( 
defined'HEADER_IMAGE' ) )
                
$args[0]['default-image'] = HEADER_IMAGE;
            elseif ( isset( 
$args[0]['default-image'] ) )
                
define'HEADER_IMAGE'$args[0]['default-image'] );

            if ( 
$jit && ! empty( $args[0]['default-image'] ) )
                
$args[0]['random-default'] = false;

            
// If headers are supported, and we still don't have a defined width or height,
            // we have implicit flex sizes.
            
if ( $jit ) {
                if ( empty( 
$args[0]['width'] ) && empty( $args[0]['flex-width'] ) )
                    
$args[0]['flex-width'] = true;
                if ( empty( 
$args[0]['height'] ) && empty( $args[0]['flex-height'] ) )
                    
$args[0]['flex-height'] = true;
            }

            break;

        case 
'custom-background' :
            if ( ! 
is_array$args ) )
                
$args = array( => array() );

            
$defaults = array(
                
'default-image' => '',
                
'default-color' => '',
                
'wp-head-callback' => '_custom_background_cb',
                
'admin-head-callback' => '',
                
'admin-preview-callback' => '',
            );

            
$jit = isset( $args[0]['__jit'] );
            unset( 
$args[0]['__jit'] );

            
// Merge in data from previous add_theme_support() calls. The first value registered wins.
            
if ( isset( $_wp_theme_features['custom-background'] ) )
                
$args[0] = wp_parse_args$_wp_theme_features['custom-background'][0], $args[0] );

            if ( 
$jit )
                
$args[0] = wp_parse_args$args[0], $defaults );

            if ( 
defined'BACKGROUND_COLOR' ) )
                
$args[0]['default-color'] = BACKGROUND_COLOR;
            elseif ( isset( 
$args[0]['default-color'] ) || $jit )
                
define'BACKGROUND_COLOR'$args[0]['default-color'] );

            if ( 
defined'BACKGROUND_IMAGE' ) )
                
$args[0]['default-image'] = BACKGROUND_IMAGE;
            elseif ( isset( 
$args[0]['default-image'] ) || $jit )
                
define'BACKGROUND_IMAGE'$args[0]['default-image'] );

            break;
    }

    
$_wp_theme_features$feature ] = $args;
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics