web-dev-qa-db-fra.com

Restreindre un type de publication

J'ai un type de publication personnalisé et une interface utilisateur entièrement personnalisée pour y accéder. Je souhaite que ces publications aient un statut de publication. Je sais comment les faire passer de la corbeille à la poubelle et être immédiatement supprimés, mais cela me laisse toujours avec des brouillons et des messages privés.

Existe-t-il un moyen d'éviter que les messages soient marqués comme brouillons ou privés? Je peux masquer les contrôles en CSS mais je veux le faire dans le code pour m'assurer que ce n'est pas possible. Existe-t-il un filtre pratique que je peux utiliser?

4
Tom J Nowell

Je me demande si vous pourriez utiliser quelque chose d'aussi simple que ceci: (similaire à la suggestion de @ialocin)

/**
 * Use the "Force" on the post status ;-)
 */

add_action( 'wp_insert_post_data', function( $data, $postarr ){

    $change_post_status = array( 'draft', 'private' ); // Edit to your needs

    if( 'cpt' === $data['post_type'] 
         && in_array( $data['post_status'], $change_post_status, TRUE ) 
    )
        $data['post_status'] = 'publish';

    return $data;

}, PHP_MAX_INT, 2 );

où nous venons de forcer la valeur du statut de la publication lorsqu'elle fait partie du tableau $change_post_status - avant que la publication ne soit enregistrée.

(... ou peut-être que je ne comprends pas bien la configuration ;-)

3
birgire