Comment ajoutez-vous la prise en charge des vignettes pour les types de publication personnalisés?

16

la prise en charge des miniatures fonctionne pour la publication, mais j'ai un autre type de publication appelé produit et il ne fonctionne pas pour cela. J'essaie: add_theme_support( 'post-thumbnails', array( 'post', 'product' ) ); j'utilise également le plugin de vignettes multiples.

Andrew Welch
la source

Réponses:

24

Par défaut, tous les articles personnalisés ajoutent la prise en charge du titre et de l'éditeur, si vous voulez plus de choses comme des commentaires, des miniatures et des révisions, vous devez les ajouter manuellement dans l' argument de prise en charge .

En savoir plus sur la façon d'enregistrer votre type de publication personnalisé ici , vous pouvez également trouver la section sur le support pour voir ce que vous pouvez ajouter.

Voici un exemple où enregistrer la vignette pour la publication personnalisée "Livres" et qui prend en charge: 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'

function codex_custom_init() {
  $labels = array(
    'name' => _x('Books', 'post type general name'),
    'singular_name' => _x('Book', 'post type singular name'),
    'add_new' => _x('Add New', 'book'),
    'add_new_item' => __('Add New Book'),
    'edit_item' => __('Edit Book'),
    'new_item' => __('New Book'),
    'all_items' => __('All Books'),
    'view_item' => __('View Book'),
    'search_items' => __('Search Books'),
    'not_found' =>  __('No books found'),
    'not_found_in_trash' => __('No books found in Trash'), 
    'parent_item_colon' => '',
    'menu_name' => __('Books')

  );
  $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' );
Pontus Abrahamsson
la source
J'utilisais la post-miniature au lieu de la miniature. Cela a du sens maintenant. post-thumbnail ajoute une miniature pour le post mais pour le type de post personnalisé, il faut une miniature
Akash Kumar Sharma
1
J'ai une «miniature» dans mon tableau «prend en charge», mais je ne peux pas enregistrer l'image sélectionnée dans mon message personnalisé.
esmitex
12

Pour les publications personnalisées, vous devez d' abord activer la prise en charge des miniatures:

add_theme_support( 'post-thumbnails' );
function theme_setup() {
    register_post_type( 'yourposttype', array(
        ...,
        'supports' => array('title', ...,'thumbnail'),
    ));
}
add_action( 'after_setup_theme', 'theme_setup' );
Herbert Van-Vliet
la source
A parfaitement fonctionné pour moi, mais pouvez-vous expliquer pourquoi "add_theme_support ('post-thumbnails');" faut-il ajouter?
Adi
2

Vous pouvez également utiliser add_post_type_support()pour ajouter une seule fonctionnalité, si vous ne souhaitez pas réécrire les supportsoptions par défaut lors de l'enregistrement de votre type de publication personnalisé:

add_post_type_support( 'product', 'thumbnail' );
Capsule
la source