
plugins — Tetapkan judul kiriman khusus secara otomatis dengan menggunakan info dari bidang khusus?
Masalah dengan kode Anda adalah fungsi get_metadata() mengembalikan array nilai, bukan nilai tunggal. Jadi ketika Anda menggabungkan variabel $first dan $last di baris ini $title = $first . ‘ ‘ . $last;, Anda sebenarnya menggabungkan dua array, yang menghasilkan judul “Array Array”.
Untuk memperbaikinya, Anda dapat menggunakan fungsi get_post_meta() alih-alih get_metadata() untuk mengambil nilai nama depan dan belakang sebagai berikut:
$first = get_post_meta( $post_id, 'first_name', true ); //meta for first name
$last = get_post_meta( $post_id, 'last_name', true ); //meta for last name
Parameter ketiga true dalam fungsi get_post_meta() menentukan bahwa Anda ingin mengambil satu nilai, bukan array nilai.
Berikut kode yang diperbarui:
add_filter( 'save_post_practitioners', 'hexagon_practitioner_set_title',
10, 3 );
function hexagon_practitioner_set_title ( $post_id, $post, $update ){
//This temporarily removes filter to prevent infinite loops
remove_filter( 'save_post_practitioners', __FUNCTION__ );
//get first and last name meta
$first = get_post_meta( $post_id, 'first_name', true ); //meta for first
name
$last = get_post_meta( $post_id, 'last_name', true ); //meta for last
name
$title = $first . ' ' . $last;
//update title
wp_update_post( array( 'ID'=>$post_id, 'post_title'=>$title ) );
//redo filter
add_filter( 'save_post_practitioners', __FUNCTION__, 10, 3 );
}
Ini harus mengatur judul posting menjadi “Nama Depan Nama Belakang” seperti yang Anda inginkan.