¿Cómo agregar soporte de miniaturas para tipos de contenido personalizados?

6 jul 2012, 10:03:43
Vistas: 70K
Votos: 21

El soporte de miniaturas funciona para las entradas, pero tengo otro tipo de contenido llamado product y no está funcionando. Estoy intentando: add_theme_support( 'post-thumbnails', array( 'post', 'product' ) ); También estoy usando el plugin multiple post thumbnail.

0
Todas las respuestas a la pregunta 3
3
35

Por defecto, todos los tipos de entradas personalizadas incluyen soporte para Título y editor. Si deseas más características como comentarios, miniaturas y revisiones, debes agregarlas manualmente en el argumento support.

Lee más sobre cómo registrar tu tipo de entrada personalizada aquí, también puedes encontrar la sección sobre support para ver qué puedes agregar.

Aquí hay un ejemplo donde registramos la miniatura para la entrada personalizada "Libros" y tiene soporte para: 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'

function codex_custom_init() {
  $labels = array(
    'name' => _x('Libros', 'nombre general del tipo de entrada'),
    'singular_name' => _x('Libro', 'nombre singular del tipo de entrada'),
    'add_new' => _x('Agregar nuevo', 'libro'),
    'add_new_item' => __('Agregar nuevo libro'),
    'edit_item' => __('Editar libro'),
    'new_item' => __('Nuevo libro'),
    'all_items' => __('Todos los libros'),
    'view_item' => __('Ver libro'),
    'search_items' => __('Buscar libros'),
    'not_found' =>  __('No se encontraron libros'),
    'not_found_in_trash' => __('No se encontraron libros en la papelera'), 
    'parent_item_colon' => '',
    'menu_name' => __('Libros')
  );
  $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 jul 2012 10:11:07
Comentarios

Estaba usando post-thumbnail en lugar de thumbnail. Ahora tiene sentido. post-thumbnail agrega miniaturas para el post, pero para tipos de post personalizados se necesita thumbnail.

Akash Kumar Sharma Akash Kumar Sharma
27 ene 2015 19:13:38

Tengo 'thumbnail' en mi array 'supports' pero no puedo guardar la imagen destacada en mi post personalizado.

esmitex esmitex
27 jun 2016 14:31:42

@esmitex: Además de la parte de supports, también necesitas tener un add_theme_support( 'post-thumbnails') en una acción apropiada o algo similar (lo cual el OP ya tenía).

Bart Bart
25 feb 2022 12:57:41
2
16

Para publicaciones personalizadas, primero debes habilitar el soporte para miniaturas:

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 nov 2016 20:49:34
Comentarios

Funcionó perfectamente para mí, pero ¿puedes explicar por qué es necesario agregar "add_theme_support( 'post-thumbnails' );"?

Adi Adi
3 ene 2020 21:55:23

Tendría que leer el código fuente para estar seguro, pero supongo que register_post_type solo carga el código de soporte si el tema está configurado para admitir miniaturas.

Herbert Van-Vliet Herbert Van-Vliet
13 sept 2021 13:19:55
1

También puedes usar add_post_type_support() para añadir una única característica, si no quieres reescribir las opciones predeterminadas de supports al registrar tu tipo de contenido personalizado:

add_post_type_support( 'product', 'thumbnail' );
25 sept 2018 05:09:35
Comentarios

Esta es, con diferencia, la mejor respuesta. El uso del atributo support rompe la interfaz de usuario del editor de bloques.

Will Soares Will Soares
17 oct 2022 19:16:11