Je veux écrire le titre de l'article avec le contenu d'un champ personnalisé $sentence_number
, de cette façon:
add_action('save_post', function ($title, $post_id) {
$post_type = get_post_type($post_id);
if ($post_type == 'sentence') {
$sentence_number = get_field('sentencia_no', $post_id);
wp_update_post($post_id, [
'post_title' => $sentence_number
]);
}
}, 10, 2);
Mais je reçois cette erreur:
Erreur non capturée: niveau d'imbrication de fonction maximal de '200' atteint, abandon!
Comment dois-je le faire pour éviter la boucle? Je vous remercie.
Il existe un moyen simple, vous devez utiliser le hook de filtre wp_insert_post_data Donc, le code devrait être comme
add_filter ('wp_insert_post_data', 'set_post_title_with_field_value');
function set_post_title_with_field_value( $data )
{
if ($data['post_type'] == 'sentence' ){
$sentence_number = get_field('sentencia_no', $data['ID']);
$data['post_title'] = $sentence_number;
}
return $data;
}
Vous devez ajouter ce code dans le fichier functions.php. Alors essayez le code et laissez-moi savoir le résultat. Merci