wordpress函数add_theme_support()

add_theme_support( string $featuremixed $args )

注册给定功能的主题支持。
Registers theme support for a given feature.


说明(Description)

必须在主题中调用函数.php归档工作。如果连接到挂钩,则它必须是“在设置主题之后”。“init”钩子对于某些功能来说可能太晚了。

示例用法:

添加主题支持(’title tag’);

添加主题支持(“自定义徽标”,数组(

‘高度’=>480,

‘宽度’=>720,

) );


参数(Parameters)

参数 类型 必填 说明
$feature (string) 必需 正在添加的功能。可能的核心价值包括“post formats”、“post thumbnails”、“html5”、“custom logo”、“custom header uploads”、“custom header”、“custom background”、“title tag”、“starter content”、“responsive embeddes”等。
$args (mixed) 可选 与某些特性一起传递的额外参数。

返回(Return)

(void|bool)失败时为False,否则为void。

源码(Source)

/**
 * 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.
 *
 * @since 2.9.0
 *
 * @global array $_wp_theme_features
 *
 * @param string $feature The feature being added.
 * @return void|bool False on failure, void otherwise.
 */
function add_theme_support( $feature ) {
    global $_wp_theme_features;
 
    if ( func_num_args() == 1 )
        $args = true;
    else
        $args = array_slice( func_get_args(), 1 );
 
    switch ( $feature ) {
        case 'post-formats' :
            if ( is_array( $args[0] ) ) {
                $post_formats = get_post_format_slugs();
                unset( $post_formats['standard'] );
 
                $args[0] = array_intersect( $args[0], array_keys( $post_formats ) );
            }
            break;
 
        case 'html5' :
            // You can't just pass 'html5', you need to pass an array of types.
            if ( empty( $args[0] ) ) {
                // Build an array of types for back-compat.
                $args = array( 0 => array( 'comment-list', 'comment-form', 'search-form' ) );
            } elseif ( ! is_array( $args[0] ) ) {
                _doing_it_wrong( "add_theme_support( 'html5' )", __( 'You need to pass an array of types.' ), '3.6.1' );
                return false;
            }
 
            // Calling 'html5' again merges, rather than overwrites.
            if ( isset( $_wp_theme_features['html5'] ) )
                $args[0] = array_merge( $_wp_theme_features['html5'][0], $args[0] );
            break;
 
        case 'custom-header-uploads' :
            return add_theme_support( 'custom-header', array( 'uploads' => true ) );
 
        case 'custom-header' :
            if ( ! is_array( $args ) )
                $args = array( 0 => 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( 0 => array() );
 
            $defaults = array(
                'default-image'          => '',
                'default-repeat'         => 'repeat',
                'default-position-x'     => 'left',
                'default-attachment'     => 'scroll',
                '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;
 
        // Ensure that 'title-tag' is accessible in the admin.
        case 'title-tag' :
            // Can be called in functions.php but must happen before wp_loaded, i.e. not in header.php.
            if ( did_action( 'wp_loaded' ) ) {
                /* translators: 1: Theme support 2: hook name */
                _doing_it_wrong( "add_theme_support( 'title-tag' )", sprintf( __( 'Theme support for %1$s should be registered before the %2$s hook.' ),
                    'title-tag', 'wp_loaded' ), '4.1' );
 
                return false;
            }
    }
 
    $_wp_theme_features[ $feature ] = $args;
}
更新版本 源码位置 使用 被使用
5.3.0 wp-includes/theme.php:2389 9 7
版权声明:原创作品,未经允许不得转载,否则将追究法律责任。
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
本文链接:子佩工作室https://zptheme.com/5480.html
许可协议:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权

本站分为普通会员,SVIP会员,永久会员。
SVIP会员新用户注册即送180天,到期后可邀请好友2位/180天进行无限续期。
永久会员支持微信支付在线开通。

积分是本站通用虚拟货币,可用于文章资源购买。
每天签到,评论或点赞文章,或者投稿都可免费获得积分
新用户注册免费赠送2积分 邀请用户注册2位/2积分

如果您已经成功付款但是网站没有弹出成功提示,请联系售后提供付款信息为您处理

本站资源属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源

需要效果图的,可以联系售后(右侧核保售后,扫码添加或者点击 加入我们-联系客服)。或者微信添加企业微信:子佩工作室

计划书请提供费率条款(现价分红),100起。WP主题一般单个问题30起。主题二开500起,开发新主题3000起。低于1000须全款,其余先支付全款的60%,完成后支付余下的。

资源是指寿险计划书(定制除外),WP主题或插件不包含在永久会员之内!

发表回复