web-dev-qa-db-fra.com

Comment changer le statut du post en hook?

J'ai un problème similaire à celui décrit dans Comment intercepter le bouton "Publier" pour vérifier la validation de la méta-boîte? Réponse, il faut accrocher save_post et changer le type de message. Comment puis-je le faire? J'essaie d'utiliser wp_transition_post_status mais ça ne marche pas pour moi ...

function myHook( $post_ID, $post )
{

    wp_transition_post_status('pending', $post->post_status, $post );

}

add_action( 'save_post', 'myHook', 10, 2 );

Edit: J'ai une installation claire de wordpress sans aucun plugin, code supplémentaire et similaire

2
user1666774

Vous obtenez l'objet post complet en tant que second paramètre sur save_post. Utilisez-le pour changer le statut comme le code suivant.

add_action( 'save_post', 'wpse_78351_status', 10, 2 );

function wpse_78351_status( $post_ID, $post )
{
    remove_filter( current_filter(), __FUNCTION__ );

    if ( 'trash' !== $post->post_status ) //adjust the condition
    {
        $post->post_status = 'draft'; // use any post status
        wp_update_post( $post );
    }
}

Voir cette réponse pour une liste des statuts de publication.

3
fuxia