姓と名の両方のメタフィールドを持つクライアントWebサイトのピープルページのカスタム投稿タイプを作成していますが、カスタム投稿のタイトルを2つの組み合わせ(つまり "firstname")に更新したいと思います。苗字")。
これを行うにはwp_update_post
を使用していますが、問題が発生しています。投稿を更新しようとすると、データは正しく更新されますが、カーソルが継続的に回転し、ページが再読み込みされることはありません。これはwp_update_post
が無限のsave_post
ループを引き起こしているためだと思いますが、 wordpress codexでのこの推奨される修正 は機能していないようで、呼び出し方法に問題があると思います。より多くの機能。
これが私のコードです:
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');
}
}
remove_actionのパラメータが間違っています。 正確に / add_actionで使用したものと同じパラメータで、最初はフック、次に関数名はremove_action('save_post','save_details');
です。