Come aggiungere il parametro "supports" per un Custom Post Type?

21 ott 2012, 19:09:05
Visualizzazioni: 33.6K
Voti: 11

Esiste un modo per aggiungere il supporto per una funzionalità personalizzata a un custom post type, dopo che è stato creato?

So come creare un custom post type utilizzando register_post_type() e come usare il parametro supports per specificare cosa il CPT dovrebbe supportare;

'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'headway-seo')

Ma per le situazioni in cui il CPT viene registrato da un plugin o un tema, esiste un modo per 'iniettare' elementi di supporto (manipolare l'array dei supporti) del CPT dopo che è stato registrato, utilizzando un hook/filter di WordPress?

2
Commenti

Ho notato che la risposta è anche nella pagina del Codex: register_post_type...

brasofilo brasofilo
21 ott 2012 19:59:56

Ho appena pubblicato un approccio alternativo che potrebbe essere utile in alcuni casi specifici.

Christine Cooper Christine Cooper
19 ott 2017 13:33:16
Tutte le risposte alla domanda 2
0
14

Sì, esiste una funzione chiamata add_post_type_support

Agganciati a init -- in ritardo, dopo che i tipi di contenuto sono stati creati -- e aggiungi il supporto.

Aggiungere il supporto per estratti alle pagine ad esempio:

<?php
add_action('init', 'wpse70000_add_excerpt', 100);
function wpse70000_add_excerpt()
{
    add_post_type_support('page', 'excerpt');
}
21 ott 2012 19:13:49
0

Un approccio alternativo è utilizzare l'hook register_post_type_args per aggiornare l'array supports.

Questo è particolarmente utile se hai plugin di terze parti che utilizzano gli argomenti del CPT per visualizzare contenuti.

function wpse70000_add_author_metabox_to_cpt_book( $args, $post_type ) {
    if ($post_type != 'POST_TYPE_NAME') // imposta il post type
        return $args;
    $args['supports'] = array( 'author' ); // imposta l'array 'supports'
    return $args;
}

add_filter( 'register_post_type_args', 'wpse70000_add_author_metabox_to_cpt_book', 10, 2 );
19 ott 2017 13:32:28