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

Если функция будет вызываться в теме 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' ) );
$args
(массив) (параметр не обязателен) Принимает различные значения, в зависимости от того, какая функциональность WordPress регистрируется в первом аргументе.

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

Если вы используете функцию в файле 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' );

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

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: