Как добавить поддержку миниатюр для произвольных типов записей?

6 июл. 2012 г., 10:03:43
Просмотры: 70K
Голосов: 21

Поддержка миниатюр работает для записей, но у меня есть другой тип записи под названием product, и для него это не работает. Я пытаюсь использовать: add_theme_support( 'post-thumbnails', array( 'post', 'product' ) ); Я также использую плагин multiple post thumbnail.

0
Все ответы на вопрос 3
3
35

По умолчанию все пользовательские записи поддерживают Заголовок и редактор. Если вам нужны дополнительные возможности, такие как комментарии, миниатюры и ревизии, их необходимо добавить вручную в аргумент supports.

Подробнее о регистрации пользовательского типа записи можно прочитать здесь, там же вы найдете раздел про supports, чтобы увидеть, что можно добавить.

Вот пример, где регистрируется миниатюра для пользовательской записи "Книги" с поддержкой следующих функций: 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'

function codex_custom_init() {
  $labels = array(
    'name' => _x('Книги', 'post type general name'),
    'singular_name' => _x('Книга', 'post type singular name'),
    'add_new' => _x('Добавить новую', 'book'),
    'add_new_item' => __('Добавить новую книгу'),
    'edit_item' => __('Редактировать книгу'),
    'new_item' => __('Новая книга'),
    'all_items' => __('Все книги'),
    'view_item' => __('Просмотреть книгу'),
    'search_items' => __('Искать книги'),
    'not_found' =>  __('Книги не найдены'),
    'not_found_in_trash' => __('В корзине книг не найдено'), 
    'parent_item_colon' => '',
    'menu_name' => __('Книги')

  );
  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true, 
    'show_in_menu' => true, 
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'has_archive' => true, 
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
  ); 
  register_post_type('book',$args);
}
add_action( 'init', 'codex_custom_init' );
6 июл. 2012 г. 10:11:07
Комментарии

Я использовал post-thumbnail вместо thumbnail. Теперь стало понятно. post-thumbnail добавляет миниатюру для записи, но для пользовательского типа записи нужно использовать thumbnail.

Akash Kumar Sharma Akash Kumar Sharma
27 янв. 2015 г. 19:13:38

У меня есть 'thumbnail' в массиве 'supports', но я не могу сохранить изображение записи в моем пользовательском типе записи.

esmitex esmitex
27 июн. 2016 г. 14:31:42

@esmitex: Помимо части supports, вам также нужно добавить add_theme_support( 'post-thumbnails') в соответствующем действии или что-то подобное (что у автора вопроса уже было).

Bart Bart
25 февр. 2022 г. 12:57:41
2
16

Для произвольных типов записей сначала необходимо включить поддержку миниатюр:

// Включаем поддержку миниатюр для тем
add_theme_support( 'post-thumbnails' );

// Регистрируем произвольный тип записи с поддержкой миниатюр
function theme_setup() {
    register_post_type( 'yourposttype', array(
        ...,
        'supports' => array('title', ...,'thumbnail'), // Поддерживаемые функции (заголовок, миниатюра и др.)
    ));
}
// Добавляем действие при инициализации темы
add_action( 'after_setup_theme', 'theme_setup' );
4 нояб. 2016 г. 20:49:34
Комментарии

У меня сработало идеально, но не могли бы вы объяснить, почему необходимо добавлять "add_theme_support( 'post-thumbnails' );"?

Adi Adi
3 янв. 2020 г. 21:55:23

Мне пришлось бы изучить исходный код, чтобы быть уверенным, но я предполагаю, что register_post_type загружает вспомогательный код только если тема поддерживает миниатюры.

Herbert Van-Vliet Herbert Van-Vliet
13 сент. 2021 г. 13:19:55
1

Вы также можете использовать функцию add_post_type_support() для добавления отдельной возможности, если не хотите переопределять стандартные параметры supports при регистрации своего пользовательского типа записи:

add_post_type_support( 'product', 'thumbnail' );
25 сент. 2018 г. 05:09:35
Комментарии

Это лучший ответ на данный момент. Использование атрибута support нарушает интерфейс блочного редактора.

Will Soares Will Soares
17 окт. 2022 г. 19:16:11