add_theme_support() 是主题告诉 WordPress:“我支持这个功能,你放心给我开放。”
比如你想用特色图(缩略图),必须声明支持 post-thumbnails,否则后台的“特色图”面板根本不会出现。
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
add_theme_support( 'menus' );
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'gallery' ) );
add_theme_support( 'automatic-feed-links' );
| 声明 | 作用 |
|---|---|
title-tag |
让 WordPress 自动输出 <title>(主题里就不用自己写 wp_title 了) |
post-thumbnails |
开启特色图 |
menus |
开启菜单支持 |
html5 |
让搜索表单、评论表单等输出 HTML5 结构(更干净) |
automatic-feed-links |
在 head 里输出 RSS 链接 |
老主题喜欢自己写 <title><?php wp_title(); ?></title>,还要自己写过滤器处理“首页显示什么、分页怎么显示”。
声明了 title-tag 之后,WordPress 会自动输出一个完整的 title,主题里不用再写。
但注意:如果你同时自己写了 <title>,就会出现两个 title。所以二选一。
翻它的 functions.php,一个 add_theme_support 都没有。这意味着:
wp_title);这些不是“错误”,但限制了主题的能力。加上几行声明,后台就多出一些功能。
一般放在 functions.php 里,用一个 after_setup_theme 钩子包起来:
add_action( 'after_setup_theme', function () {
add_theme_support( 'title-tag' );
add_theme_support( 'post-thumbnails' );
add_theme_support( 'html5', array( 'search-form', 'comment-form' ) );
} );
为什么包起来?因为 add_theme_support 必须在主题加载完成后调用,直接写在文件顶层有时机问题。
如果主题声明了 title-tag,又自己写了 <title>,会输出两个标题。这在 SEO 上是硬伤(搜索引擎不知道用哪个)。
检查方法:打开页面源码,搜 <title,看出现几次。超过一次就是重复。
一句话记住:add_theme_support 是主题的能力声明——开特色图、开 title-tag、开 html5;开了就别自己再写一遍。
下一篇讲图片尺寸。