web-dev-qa-db-fra.com

Comment ajouter un paramètre "supports" pour un type de message personnalisé?

Existe-t-il un moyen d'ajouter une prise en charge d'une fonctionnalité personnalisée pour un type de publication personnalisé après sa création?

Je sais comment créer un type d'article personnalisé à l'aide de register_post_type (), et comment utiliser le paramètre supports pour spécifier ce que le CPT doit prendre en charge.

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

Mais dans les situations où le CPT est enregistré par un plugin ou un thème, existe-t-il un moyen d’injecter des éléments de support (manipuler le tableau de support) du CPT après qu’il a été enregistré, en utilisant un WP crochet/filtre?

4
mikkelbreum

Oui, il existe une fonction appelée add_post_type_support

Accrochez-vous dans init - tard, après la création des types d'article - et ajoutez un support.

Ajout de la prise en charge d'extraits aux pages, par exemple:

<?php
add_action('init', 'wpse70000_add_excerpt', 100);
function wpse70000_add_excerpt()
{
    add_post_type_support('page', 'excerpt');
}
9
chrisguitarguy

Une autre approche consiste à connecter register_post_type_args et à mettre à jour le tableau supports.

Ceci est particulièrement utile si vous avez des plugins tiers qui s'accrochent aux arguments CPT pour afficher le contenu.

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

add_filter( 'register_post_type_args', 'wpse70000_add_author_metabox_to_cpt_book', 10, 2 );
0
Christine Cooper