Cum să adaugi parametrul "supports" pentru un tip de postare personalizat?
Există vreo modalitate de a adăuga suport pentru o funcționalitate personalizată pentru un tip de postare personalizat, după ce acesta a fost creat?
Știu cum să creez un tip de postare personalizat folosind register_post_type() și cum să folosesc parametrul supports pentru a specifica ce ar trebui să suporte CPT;
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt' ,'headway-seo')
Dar pentru situațiile în care CPT este înregistrat de un plugin sau o temă, există vreo modalitate de a 'injecta' elemente de suport (de a manipula array-ul support) al CPT-ului după ce acesta a fost înregistrat, folosind un hook/filter WordPress?

Da, există o funcție numită add_post_type_support
Conectează-te la init
-- târziu, după ce tipurile de postări au fost create -- și adaugă suportul.
De exemplu, adăugarea suportului pentru rezumate (excerpt) la pagini:
<?php
add_action('init', 'wpse70000_add_excerpt', 100);
function wpse70000_add_excerpt()
{
add_post_type_support('page', 'excerpt');
}

O abordare alternativă este să folosim hook-ul register_post_type_args
și să actualizăm array-ul supports
.
Această metodă este utilă în special dacă aveți plugin-uri externe care folosesc hook-uri în argumentele CPT pentru a afișa conținut.
function wpse70000_add_author_metabox_to_cpt_book( $args, $post_type ) {
if ($post_type != 'POST_TYPE_NAME') // setează tipul de postare
return $args;
$args['supports'] = array( 'author' ); // setează array-ul 'supports'
return $args;
}
add_filter( 'register_post_type_args', 'wpse70000_add_author_metabox_to_cpt_book', 10, 2 );
