add_theme_support() — добавляет поддержку: форматов постов, миниатюр, меню, HTML5, произвольного фона и заголовка

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Если функция будет вызываться в теме WordPress, тогда это должен быть файл functions.php, если в плагине, то хук after_setup_theme.

add_theme_support( $feature, $args )
$feature
(строка) Какой функционал требуется активировать на сайте:

  • post-formats — форматы постов. Этот функционал был добавлен в версии 3.1. В качестве второго аргумента указываем названия форматов постов, которые нужно зарегать:
    add_theme_support( 'post-formats', array( 'quote', 'gallery' ) );
  • post-thumbnails — миниатюры постов. Добавлено в версии 2.9, в качестве второго параметра можно указать типы постов, для которых нужно подключить миниатюры:
    add_theme_support( 'post-thumbnails' ); // для всех
    add_theme_support( 'post-thumbnails', array( 'post' ) ); // для записей
    add_theme_support( 'post-thumbnails', array( 'page' ) ); // для страниц
    add_theme_support( 'post-thumbnails', array( 'post', 'page' ) ); // для записей и страниц
  • custom-background — произвольный фон. Эта возможность доступна с версии WordPress 3.4. Тоже имеет второй аргумент, в котором можно задать массив значений по умолчанию и указать возвратные функции:
    $defaults = array(
    	'default-color'          => '', // цвет по умолчанию
    	'default-image'          => '', // изображение по умолчанию
    	'wp-head-callback'       => '_custom_background_cb',
    	'admin-head-callback'    => '',
    	'admin-preview-callback' => ''
    );
    add_theme_support( 'custom-background', $defaults );
  • custom-header — произвольный заголовок (шапка) (с версии 3.4). Да, для заполнения шапки сайта пользователь теперь может использовать стандартные средства WordPress. Второй параметр тут также не обязателен, но, если хотите, можете указать там список значений параметров по умолчанию:
    $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' => '',
    );
    add_theme_support( 'custom-header', $defaults );
  • automatic-feed-links — при подключении добавляет ссылки на RSS-ленты сайта в <head> (появилось в 3.0).
    add_theme_support( 'automatic-feed-links' );
  • menus — добавляет поддержку меню. Для этих целей лучше использовать функцию register_nav_menus(). Тем не менее, вот пример:
    add_theme_support('menus');
  • html5 — эта особенность позволяет использовать разметку HTML5 для формы комментирования, формы поиска, списка комментов и т.д.
    add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) );
  • title-tag — автоматически выводит через wp_head() тайтл документа функцией wp_get_document_title()
$args
(массив) (параметр не обязателен) Принимает различные значения, в зависимости от того, какая функциональность WordPress регистрируется в первом аргументе.
add_theme_support( 'post-formats', array( 'quote', 'gallery' ) );
add_theme_support( 'post-thumbnails' ); // для всех
add_theme_support( 'post-thumbnails', array( 'post' ) ); // для записей
add_theme_support( 'post-thumbnails', array( 'page' ) ); // для страниц
add_theme_support( 'post-thumbnails', array( 'post', 'page' ) ); // для записей и страниц
$defaults = array(
	'default-color'          => '', // цвет по умолчанию
	'default-image'          => '', // изображение по умолчанию
	'wp-head-callback'       => '_custom_background_cb',
	'admin-head-callback'    => '',
	'admin-preview-callback' => ''
);
add_theme_support( 'custom-background', $defaults );
$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' => '',
);
add_theme_support( 'custom-header', $defaults );
add_theme_support( 'automatic-feed-links' );
add_theme_support('menus');
add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) );

Пример для использования в плагине

Если вы используете функцию в файле functions.php текущей темы, тогда хук подключать не нужно. Во всех остальные случаях — нужно. К init не подключайте, так как в некоторых случаях он задействуется слишком поздно.

function true_plugin_add_support(){
	add_theme_support( 'post-thumbnails' );
}
 
add_action('after_setup_theme', 'true_plugin_add_support');

Тот же самый пример, но для использования в теме, в functions.php

Обратите внимание, если в других постах код рекомендуется вставлять в functions.php (то есть вы можете вставлять его и в другие файлы, если знаете куда), то здесь нужен только файл functions.php и никакой другой.

add_theme_support( 'post-thumbnails' );

Ссылки на посты с подробным описанием функциональных возможностей, задающихся в первом параметре функции, представлены ниже.

Посты с описанием функционала, подключаемого этой функцией

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии