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.

Leave a Reply

Your email address will not be published. Required fields are marked *