我一直堅持這個好幾天了,所以任何建議真的很感激。我在CPT(自定義帖子類型)上使用ACF(高級自定義字段)。Wordpress CPT和添加用戶使用ACF
我有一個名爲'People'的CPT,並且在添加'person'後,我試圖在發佈時將該用戶添加爲用戶。我的CPT都能正常工作,這就是我目前使用的add_filter
和wp_insert_user
。
add_filter('publish_people', 'people_postdata', 100);
function people_postdata($post_id) {
global $wpdb;
$firstname = get_post_meta($post_id, 'first_name', true);
$lastname = get_post_meta($post_id, 'last_name', true);
$email = get_post_meta($post_id, 'email_address', true);
$password = get_post_meta($post_id, 'password', true);
$username = preg_replace('/[^A-Za-z0-9]/', '', strtolower(get_the_title($post_id)));
$userargs = array(
'first_name' => $firstname,
'last_name' => $lastname,
'user_login' => $username,
'user_email' => $email,
'user_pass' => $password,
'role' => 'basic'
);
// var_dump($userargs);
wp_insert_user($userargs);
}
現在,如果我有一個真正的帖子ID替換$post_id
,這一切完美的作品。但是,使用$post_id
來動態獲取我剛剛提交的帖子的ID,它無法工作,並將first_name,last_name,user_email和user_pass留爲空白。但是,由於某種原因,user_login起作用。
當我var_dump($userargs)
添加看看它拉,它輸出這樣的:
array(6) { ["first_name"]=> string(0) "" ["last_name"]=> string(0) "" ["user_login"]=> string(11) "richardcook" ["user_email"]=> string(0) "" ["user_pass"]=> string(0) "" ["role"]=> string(5) "basic" }
我一直在使用get_the_ID()
試過了,get_field
但它們都具有相同的結果。
任何想法?我覺得奇怪的是,它在get_the_title
上工作,但沒有別的。另外,如果我var_dump($post_id)
它帶回了正確的ID ...但不使用它!
任何幫助真的,真的很感激,你需要的任何東西只是讓我知道。
非常感謝, [R