描述
必须在主题的functions.php文件中调用。如果要附加到钩子上,则必须是‘after_setup_theme’。对于某些功能来说,‘init’钩子可能太晚了。
示例用法:
add_theme_support( 'title-tag' ); add_theme_support( 'custom-logo', array( 'height' => 480, 'width' => 720, ) );
参数
- $feature
-
(string) (必填) 要被添加的功能,可能的核心值包括:
- 'admin-bar'
- 'align-wide'
- 'automatic-feed-links'
- 'core-block-patterns'
- 'custom-background'
- 'custom-header'
- 'custom-line-height'
- 'custom-logo'
- 'customize-selective-refresh-widgets'
- 'custom-spacing'
- 'custom-units'
- 'dark-editor-style'
- 'disable-custom-colors'
- 'disable-custom-font-sizes'
- 'editor-color-palette'
- 'editor-gradient-presets'
- 'editor-font-sizes'
- 'editor-styles'
- 'featured-content'
- 'html5'
- 'menus'
- 'post-formats'
- 'post-thumbnails'
- 'responsive-embeds'
- 'starter-content'
- 'title-tag'
- 'wp-block-styles'
- 'widgets'
- 'widgets-block-editor'
- $args
-
(mixed) (可选) 与某些功能一起传递的额外参数。
返回
(void|false) 成功时无返回,失败时为false。
说明
功能
文章格式
add_theme_support( 'post-formats' )
将覆盖父主题定义的格式,而不是添加到父主题中。
要启用特定格式(请参阅文章格式中支持的格式),请使用:
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
要检查是否有给文章分配“quote”格式,请使用has_post_format():
// In your theme single.php, page.php or custom post type if ( has_post_format( 'quote' ) ) { echo 'This is a quote.'; }
文章缩略图
此功能让主题启用文章缩略图支持。注意,您可以选择传递第二个参数$args
,其中包含一个文章类型数组,是您希望为其启用此功能的类型。
add_theme_support( 'post-thumbnails' ); add_theme_support( 'post-thumbnails', array( 'post' ) ); // Posts only add_theme_support( 'post-thumbnails', array( 'page' ) ); // Pages only add_theme_support( 'post-thumbnails', array( 'post', 'movie' ) ); // Posts and Movies
必须在触发‘init’钩子之前调用此功能。这意味着需要将其直接放入functions.php或附加到‘after_setup_theme’钩子的函数内。对于自定义文章类型,也可以使用register_post_type()功能添加文章缩略图。
在主题index.php或single.php或自定义模板中显示缩略图,请使用:
the_post_thumbnail();
要在显示之前检查是否有文章缩略图,请使用:
if ( has_post_thumbnail() ) { the_post_thumbnail(); }
自定义背景
此功能让主题启用自定义背景支持。
add_theme_support( 'custom-background' );
请注意,可以使用以下命令添加默认参数:
$defaults = array( 'default-image' => '', 'default-preset' => 'default', // 'default', 'fill', 'fit', 'repeat', 'custom' 'default-position-x' => 'left', // 'left', 'center', 'right' 'default-position-y' => 'top', // 'top', 'center', 'bottom' 'default-size' => 'auto', // 'auto', 'contain', 'cover' 'default-repeat' => 'repeat', // 'repeat-x', 'repeat-y', 'repeat', 'no-repeat' 'default-attachment' => 'scroll', // 'scroll', 'fixed' 'default-color' => '', 'wp-head-callback' => '_custom_background_cb', 'admin-head-callback' => '', 'admin-preview-callback' => '', ); add_theme_support( 'custom-background', $defaults );
自定义页眉
此功能让主题启用自定义页眉支持。
add_theme_support( 'custom-header' );
请注意,可以使用以下命令添加默认参数:
$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' => '', 'video' => false, 'video-active-callback' => 'is_front_page', ); add_theme_support( 'custom-header', $defaults );
自定义Logo
此功能首次在Version 4.5中引入,让主题启用自定义Logo支持。
add_theme_support( 'custom-logo' );
请注意,可以使用以下命令添加默认参数:
add_theme_support( 'custom-logo', array( 'height' => 100, 'width' => 400, 'flex-height' => true, 'flex-width' => true, 'header-text' => array( 'site-title', 'site-description' ), 'unlink-homepage-logo' => true, ) );
Feed链接
此功能在页头启用文章和评论的自动Feed链接。这应该用来代替不推荐使用的automatic_feed_links()函数。
add_theme_support( 'automatic-feed-links' );
HTML5
此功能允许在搜索表单、评论表单、评论列表、图库和标题使用HTML5 标记
add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption', 'style', 'script' ) );
Title标签
此功能使插件和主题能够管理页面的title
标签。这应该用来代替wp_title()函数。
add_theme_support( 'title-tag' );
自定义选择性刷新小工具
此功能支持对自定义中管理的小工具进行选择性刷新。此功能在WordPress 4.5中可用。有关选择性刷新的原因及方式的更多信息,请阅读选择性刷新:快速、准确的更新。
add_theme_support( 'customize-selective-refresh-widgets' );
多站点
要在多站点安装中显示“特色图像”选择框,请确保在网络管理设置子面板#Upload_Settings媒体上载按钮选项中更新允许的上载文件类型。默认值为jpg jpeg png gif mp3 mov avi wmv midi mid pdf
。
其他注意事项
以下参数是只读的,只能在current_theme_supports()的上下文中使用:
sidebars
: 使用 register_sidebar() 或 register_sidebars() 替代menus
: 使用 register_nav_menu() 或 register_nav_menus() 替代editor-style
: 使用 add_editor_style() 替代
源码
更新日志
版本 | 描述 |
---|---|
5.8.0 | widgets-block-editor 功能启用小工具区块编辑器 |
5.6.0 | 如果没有传递数组,post-formats 功能会发出警告 |
5.5.0 | custom-logo 功能现在也接受“unlink-homepage-logo” |
5.3.0 | 通过将现有和已记录的...$args 参数添加到函数签名中,将其形参化 |
5.0.0 | 添加了responsive-embeds 、align-wide 、dark-editor-style 、disable-custom-colors 、disable-custom-font-sizes 、editor-color-palette 、editor-font-sizes 、editor-styles 和wp-block-styles 功能 |
4.7.0 | 添加了starter-content 功能 |
4.5.0 | 添加了customize-selective-refresh-widgets 功能 |
4.1.0 | 添加了title-tag 功能 |
3.9.0 | html5 功能现在也接受“gallery”和“caption” |
3.6.0 | 添加了html5 功能 |
3.4.0 | custom-header-uploads 功能被弃用 |
2.9.0 | 开始引入 |
使用示例
/** * Essential theme supports * */ function theme_setup(){ /** automatic feed link*/ add_theme_support( 'automatic-feed-links' ); /** tag-title **/ add_theme_support( 'title-tag' ); /** post formats */ $post_formats = array('aside','image','gallery','video','audio','link','quote','status'); add_theme_support( 'post-formats', $post_formats); /** post thumbnail **/ add_theme_support( 'post-thumbnails' ); /** HTML5 support **/ add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) ); /** refresh widgest **/ add_theme_support( 'customize-selective-refresh-widgets' ); /** custom background **/ $bg_defaults = array( 'default-image' => '', 'default-preset' => 'default', 'default-size' => 'cover', 'default-repeat' => 'no-repeat', 'default-attachment' => 'scroll', ); add_theme_support( 'custom-background', $bg_defaults ); /** custom header **/ $header_defaults = array( 'default-image' => '', 'width' => 300, 'height' => 60, 'flex-height' => true, 'flex-width' => true, 'default-text-color' => '', 'header-text' => true, 'uploads' => true, ); add_theme_support( 'custom-header', $header_defaults ); /** custom log **/ add_theme_support( 'custom-logo', array( 'height' => 60, 'width' => 400, 'flex-height' => true, 'flex-width' => true, 'header-text' => array( 'site-title', 'site-description' ), ) ); } add_action('after_setup_theme','theme_setup');
启用区块编辑器的“完全对齐”和“宽对齐”选项的主题支持,请使用
add_theme_support( 'align-wide' );
在WP 5.3中,
add_theme_support('html5', ['script', 'style']);
删除引入脚本和样式的type="text/javascript"
和type="text/css"
。参见https://make.wordpress.org/core/2019/10/15/miscellaneous-developer-focused-changes-in-5-3/–HTML5支持脚本和样式标记的参数
要确定主题支持是否存在(并检索其参数),请使用
get_theme_support( $feature )
注意,您必须单独调用其中的每一个,组成数组调用也不行
add_theme_support( array( 'editor-styles', 'align-wide' ) )
您必须单独调用:
add_theme_support( 'editor-styles' ); add_theme_support( 'align-wide' );
声明支持导航小工具标记。
add_theme_support( 'html5', array( 'navigation-widgets' ) );
“我们强烈鼓励主题开发者在他们的主题中利用这一改进。这一新的主题支持功能是一种简单的方法,可以改善使用主题的所有网站的语义和可访问性。”
初始内容#
定义并注册初始内容,以在新网站上展示主题。
add_theme_support( 'starter-content', array( // Place widgets in the desired locations (such as sidebar or footer). // Example widgets: archives, calendar, categories, meta, recent-comments, recent-posts, // search, text_business_info, text_about 'widgets' => array( 'sidebar-1' => array( 'search', 'categories', 'meta'), ), // Specify pages to create, and optionally add custom thumbnails to them. // Note: For thumbnails, use attachment symbolic references in {{double-curly-braces}}. // Post options: post_type, post_title, post_excerpt, post_name (slug), post_content, // menu_order, comment_status, thumbnail (featured image ID), and template 'posts' => array( 'home', 'about', 'blog' => array( 'thumbnail' => '{{image-cafe}}' ), ), // Create custom image attachments used as post thumbnails for pages. // Note: You can reference these attachment IDs in the posts section above. Example: {{image-cafe}} 'attachments' => array( 'image-cafe' => array( 'post_title' => 'Cafe', 'file' => 'assets/images/cafe.jpg' ), ), // Assign options defaults, such as front page settings. // The 'show_on_front' value can be 'page' to show a specified page, or 'posts' to show your latest posts. // Note: Use page ID symbolic references from the posts section above wrapped in {{double-curly-braces}}. 'options' => array( 'show_on_front' => 'page', 'page_on_front' => '{{home}}', 'page_for_posts' => '{{blog}}', ), // Set the theme mods. 'theme_mods' => array( 'panel_1' => '{{about}}' ), // Set up nav menus. 'nav_menus' => array( 'top' => array( 'name' => 'Top Menu', 'items' => array( 'link_home', 'page_about', 'page_blog' )), ), ) );
有关每个选项的完整示例,您可以参考Twenty Seventeen主题的
functions.php
:自定义背景的“default-color”不起作用
解决方案是定义自己的样式表类,并将CSS类添加到
body
标记中。声明对区块样式的支持。
add_theme_support( 'wp-block-styles' );
这些将支持主题中的默认古腾堡区块样式。
停用新的区块编辑器小工具并激活旧编辑器小工具
remove_theme_support( 'widgets-block-editor' );