Informations sur wp_die à partir du codex: Supprimez l'exécution de WordPress et affichez le message HTML avec le message d'erreur. Un appel à cette fonction complète la fonction die () PHP. La différence est que HTML sera affiché à l'utilisateur. Il est recommandé d'utiliser cette fonction uniquement lorsque l'exécution ne doit plus continuer.
J'ai le code:
function myHook( $post_ID, $post )
{
wp_die('Error', 'Error', array( 'response' => 500, 'back_link' => true ));
}
add_action( 'save_post', 'myHook', 0, 2 );
Le problème est que la page d'erreur apparaît, mais que la publication est toujours insérée. La sauvegarde ne devrait-elle pas être interrompue par ce crochet? Si j'ai mal compris la description, comment puis-je interrompre l'exécution pour que la publication ne soit pas enregistrée?
EDIT: Je viens de constater que save_post est appelé après instert to database, pas avant. Existe-t-il une fonction appelée avant insertion que je peux accrocher?
Merci d'avance
Essayez plutôt de filtrer avec wp_insert_post_data
. C'est de wp-includes/post.php
, ligne 2864.
add_filter( 'wp_insert_post_data', 'post_publish_filter_wpse_82356' );
function post_publish_filter_wpse_82356( $data ) {
// view/manipulate $data
if ('publish' == $data['post_status']) {
$msg = '<pre>' . var_export($data, true) . '</pre>';
wp_die($msg);
}
return $data;
}
publish
est le post_status
lorsque vous cliquez sur le boutonPublishouUpdate. Les quatre statuts que j'ai trouvés sont: