web-dev-qa-db-fra.com

Activation des vignettes de publication pour un type de publication personnalisé

J'écris un type d'article personnalisé en tant que plugin et j'essaie de comprendre comment activer les vignettes d'articles dans la documentation/le modèle du plugin au lieu de l'activer dans le fichier functions.php. J'ai essayé d'ajouter le code ci-dessous dans custom-post-plugin.php et cela ne semble pas fonctionner. Je dois encore écrire le code dans le fichier functions.php pour activer les vignettes de publication pour ma publication personnalisée.

/ * ADD THUMBNAIL FOR POST
 * ------------------------------------------------------------------------ */
add_theme_support( 'post-thumbnails', array( 'post', 'custom-post' ) );

Exemple de code ci-dessous

<?php
/*
Plugin Name: Example Custom Post Plugin
Description: Example post plugin for News and Press custom post
*/
?>

<?php
/* ------------------------------------------------------------------------ *
 * EXAMPLE CUSTOM POST
  ------------------------------------------------------------------------ */

function example () {

// Set UI labels for Custom Post Type
    $labels = array(
        'name'                => _x( 'Example', 'Post Type General Name', 'twentythirteen' ),
        'singular_name'       => _x( 'Example', 'Post Type Singular Name', 'twentythirteen' ),
        'menu_name'           => __( 'Example', 'twentythirteen' ),
        'parent_item_colon'   => __( 'Parent Example', 'twentythirteen' ),
        'all_items'           => __( 'All Post', 'twentythirteen' ),
        'view_item'           => __( 'View Post', 'twentythirteen' ),
        'add_new_item'        => __( 'Add New Post', 'twentythirteen' ),
        'add_new'             => __( 'Add Post', 'twentythirteen' ),
        'edit_item'           => __( 'Edit Post', 'twentythirteen' ),
        'update_item'         => __( 'Update Post', 'twentythirteen' ),
        'search_items'        => __( 'Search Post', 'twentythirteen' ),
        'not_found'           => __( 'Not Found', 'twentythirteen' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
    );

// Set other options for Custom Post Type

    $args = array(
        'label'               => __( 'Example', 'twentythirteen' ),
        'description'         => __( 'Example', 'twentythirteen' ),
        'labels'              => $labels,
        // Features this CPT supports in Post Editor
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        // You can associate this CPT with a taxonomy or custom taxonomy.
        'taxonomies'          => array('category', 'post_tag'),
        /* A hierarchical CPT is like Pages and can have
        * Parent and child items. A non-hierarchical CPT
        * is like Posts.
        */
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 4,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page',
    );

    // Registering your Custom Post Type
    register_post_type( 'example', $args );
}

/* Hook into the 'init' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/

add_action( 'init', 'example', 'example', 1 );

add_action( 'after_setup_theme', 'example_featured_image');
function example_featured_image() {
        add_theme_support( 'post-thumbnails', array( 'post', 'page', 'production_firm', 'example' ) );
}
1
clestcruz

Vous utilisez probablement add_theme_support() dans un contexte incorrect (hook _).

Parce que vous êtes en enregistrant le type de message vous-même, tout ce que vous avez à faire est d’ajouter du support pour les vignettes dans le tableau supports lorsque vous passez vos arguments à register_post_type()

supports

(array/boolean) (facultatif) Un alias pour appeler directement add_post_type_support(). À partir de la version 3.5, la valeur booléenne false peut être transmise sous forme de valeur au lieu d'un tableau afin d'empêcher le comportement par défaut (titre et éditeur).

Défaut: titre et éditeur

Tout ce que vous avez à faire est de passer thumbnail au tableau

'supports' => ['title', 'editor', 'thumbnail'], // Add additional values as needed

Vous devez également vérifier vérifiez si le support pour les vignettes est activé par le thème, et si ce n'est pas le cas, ajoutez un support pour les vignettes post dans votre plugin.

3
Pieter Goosen