Cum să adaugi parametrul "supports" pentru un tip de postare personalizat?

21 oct. 2012, 19:09:05
Vizualizări: 33.6K
Voturi: 11

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?

2
Comentarii

Tocmai am observat că răspunsul se găsește și în pagina Codex: register_post_type...

brasofilo brasofilo
21 oct. 2012 19:59:56

Tocmai am postat o abordare alternativă care poate fi utilă în anumite cazuri specifice.

Christine Cooper Christine Cooper
19 oct. 2017 13:33:16
Toate răspunsurile la întrebare 2
0
14

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');
}
21 oct. 2012 19:13:49
0

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 );
19 oct. 2017 13:32:28