Je dois exécuter un code personnalisé PHP après la publication d'un nouveau message avec toutes ses métadonnées.
Ma question est comment y parvenir? Essayé avec save_post action, mais il s'exécute avant que les méta-enregistrements ne soient sauvegardés, je ne peux donc pas l'utiliser dans ce cas.
Alors, comment puis-je exécuter ma fonction personnalisée après la publication de toutes les données associées enregistrées dans la base de données?
MISE À JOUR: J'ai essayé d'obtenir le code suivant dans le fichier functions.php:
add_action( 'save_post', 'wpse41912_save_post' );
function wpse41912_save_post() {
// get info about latest added post
$args = array( 'numberposts' => '1', 'post_type' => 'post' );
$recent_posts = wp_get_recent_posts( $args );
$myFunc_latest_id = $recent_posts[0]['ID']; // id of the latest post
$myFunc_post_details = get_post($myFunc_latest_id);
print_r($myFunc_post_details);
// how to execute php code when all post meta is added?
}
Merci d'avance!
PourNEWpost type 'post', utilisez le hook d'action draft_to_publish
:
function fpw_post_info( $post ) {
if ( 'post' == $post->post_type ) {
// echo '<pre>'; print_r( $post ); echo '<br />';
// $meta = get_post_meta( $post->ID ); print_r( $meta ); echo '</pre>'; die();
// your custom code goes here...
}
}
add_action( 'draft_to_publish', 'fpw_post_info', 10, 1 );
Dans votre fonction de rappel, $post
correspond à votre publication en tant qu’objet WP_post
. Vous obtiendrez la fonction de méta appelant get_post_meta
de la poste.
PourNEWouMIS À JOURtype de poste 'post', utilisez le hook d'action publish_post
:
function fpw_post_info( $id, $post ) {
// echo '<pre>'; print_r( $post ); echo '<br />';
// $meta = get_post_meta( $post->ID ); print_r( $meta ); echo '</pre>'; die();
// your custom code goes here...
}
add_action( 'publish_post', 'fpw_post_info', 10, 2 );
Dans ce cas, la fonction de rappel prend deux paramètres!
Solution assez stupide, mais qui marche:
function afterPostUpdated($meta_id, $post_id, $meta_key='', $meta_value=''){
if($meta_key=='_edit_lock') {
if($_GET['message']==1) {
//
Your code here
//
}
}
}
add_action('updated_post_meta', 'afterPostUpdated', 10, 4);