web-dev-qa-db-fra.com

Undelete post (untrash)?

Quelle fonction faut-il utiliser pour déplacer les publications de la corbeille vers les pages publiées?
c'est à dire. existe-t-il wp_undelete_post ou quelque chose comme?

1
T.Todua

Il n'y a pas wp_undelete_post mais vous avez d'autres choix:

  • wp_untrash_post() : lorsque post est mis à la corbeille, le statut précédent est stocké dans le champ méta _wp_trash_meta_status. wp_untrash_post() restaure les messages supprimés, quel que soit leur statut; par exemple, privé, hériter, publier. Je ne l'ai pas testé, mais il devrait également fonctionner avec un statut de publication personnalisé .
  • wp_publish_post() : si vous souhaitez passer de la corbeille au statut de publication.
  • wp_update_post() : pour passer de la corbeille à un autre statut.

Par exemple, pour un ID d'article donné (de tout type d'article, y compris les pages):

if( get_post_status( $post_ID ) == "trash" ) {
    wp_update_post( array(
                   'ID'           => $post_ID,
                   'post_status'  => 'publish'
               )
    );
}

ou:

if( get_post_status( $post_ID ) == "trash" ) {
    wp_publish_post( $post_ID );
}

ou:

if( get_post_status( $post_ID ) == "trash" ) {
    wp_untrash_post( $post_ID );
}
4
cybmeta

C'est peut-être vieux mais il est apparu quand je cherchais un problème similaire. Depuis WP 2.9.0, une fonction est appelée: wp_untrash_post (int $ post_id)

Dans mon cas, cela a fonctionné comme un charme.

1
Zank