Je crée un type de publication personnalisé pour une page de contacts pour un site Web client comportant des méta-champs pour le nom et le nom de famille, mais je souhaite également mettre à jour le titre des publications personnalisées afin qu'il soit une combinaison des deux (c'est-à-dire "prénom nom de famille").
J'utilise wp_update_post
pour le faire, mais je rencontre un problème. Lorsque je vais mettre à jour un message, les données sont mises à jour correctement, mais mon curseur tourne continuellement et la page ne se recharge jamais. Je suppose que cela est dû au fait que wp_update_post
provoque une boucle infinie save_post
, mais le correctif recommandé pour cela sur le codex wordpress ne semble pas fonctionner et je suppose qu'il y a un problème avec la façon dont j'appelle une ou plusieurs fonctions. .
Voici mon code:
add_action('save_post', 'save_details');
add_action('edit_post', 'save_details');
function save_details($post_id){
global $post;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id;
}
update_post_meta($post->ID, "firstname", $_POST["firstname"]);
update_post_meta($post->ID, "lastname", $_POST["lastname"]);
if ( ! wp_is_post_revision( $post_id ) ){
$args = array();
$args['ID'] = $post_id;
$args['post_title' ] = implode(' ', array($_POST["firstname"],$_POST["lastname"]));
remove_action('save_details','save_post');
wp_update_post( $args );
add_action('save_details','save_post');
}
}
les paramètres pour remove_action sont incorrects, ils devraient être exactement les mêmes paramètres que ceux que vous avez utilisés dans add_action, d'abord le hook, puis le nom de la fonction remove_action('save_post','save_details');