无法将多个值写回ACF用户字段-PHP

时间:2018-10-01 作者:Jon Hagee

我的项目是与领养导师和;学员用户。然后再向导师添加其他学员。

我的导师有一个ACF current\\u mentees(用户列表)字段。我可以添加一个用户。但当我尝试推/添加另一个时,它无法正确添加第二个。

// get mentor & new mentee user arrays from the Match Metadata fields

$mentor = get_field(\'match_mentor\', $post_id);

$mentee = get_field(\'match_mentee\', $post_id);

//get ID from mentor & mentee array

$match_mentor_id = $mentor[\'ID\'];  

$match_mentee_id = $mentee[\'ID\'];

//set up the mentor user_post_id

$mentor_post_id = "user_".$match_mentor_id; 

//get mentor curent_users contents

$current_mentees = get_field(\'current_mentees\', $mentor_post_id, false);

// see if the current mentees is null or has a mentee already

if ($current_mentees == \'\'){

    //write new mentee back to the Mentor User Meta field

    update_field(\'current_mentees\' , $match_mentee_id , $mentor_post_id);

       } else {

   //combine old mentee(s) with new mentee

   array_push( $current_mentees , $match_mentee_id);

//write new current mentees back to the Mentor User Meta fields

update_field(\'current_mentees\' , $current_mentees , $mentor_post_id);

}
match\\u导师;match\\u mentees和current\\u mentees都是ACF字段。我可以通过用户帐户中的下拉列表将(学员)用户(单个和多个)手动添加到当前的\\u学员。它显示为数组的数组。第一个看起来像:a:1:{i:0;s:2:“60〃;}//用户60添加第二个会得到:a:2:{i:0;s:2:“60”;i:1;s:2:“57;”//用户60及;57这对我来说是有用的。我希望代码也能这样做。

但是使用上述代码添加一个用户,在current\\u mentees字段/DB中,我看到了60。然后加上第二个,我得到a:1:{I:0;I:57;}。(它将替换第一个用户,而不是添加第二个用户)。

我不确定这是否是开始错误的(对于第一个用户),或者是否需要在添加第二个变量之前修改变量(我已经尝试过)。谢谢

1 个回复
最合适的回答,由SO网友:Jon Hagee 整理而成

好的,今天早上我想了几个办法,然后事情就解决了。让我发布修改后的代码。从本质上讲,我试图遵循自然的格式,看看是否可以让所有内容都更加符合要求。我决定将初始变量转换为一个数组,这就是为什么其他所有变量都是一致的。

//获取导师(&M);“匹配元数据”字段中的新学员用户数组

$mentor=get_字段($match_mentor\',$post_id);

$mentee=get\\u字段(\'match\\u mentee\',$post\\u id);

//从mentor阵列获取ID

$match\\u mentor\\u id=$mentor[\'id];

//从学员阵列获取ID

$match\\u mentee\\u id=$mentee[\'id\'];

//设置mentor user\\u post\\u id

$mentor\\u post\\u id=“user\\u”$match\\u mentor\\u id;

//从mentor curent\\u用户获取用户阵列

$current\\u mentees=get\\u字段(\'current\\u mentees\',$mentor\\u post\\u id,false);

//查看当前学员是否为空或是否已有学员

如果($current\\u mentees=“”){

//以正确的格式放置数据

$current\\u mentees=数组();

}

//将旧学员与新学员结合起来

array\\u push($current\\u mentees,$match\\u mentees\\u id);

//将新的当前学员写回导师用户元字段

update\\u字段(\'current\\u mentees\',$current\\u mentees,$mentor\\u post\\u id);

结束
无法将多个值写回ACF用户字段-PHP - 小码农CODE - 行之有效找到问题解决它

无法将多个值写回ACF用户字段-PHP

时间:2018-10-01 作者:Jon Hagee

我的项目是与领养导师和;学员用户。然后再向导师添加其他学员。

我的导师有一个ACF current\\u mentees(用户列表)字段。我可以添加一个用户。但当我尝试推/添加另一个时,它无法正确添加第二个。

// get mentor & new mentee user arrays from the Match Metadata fields

$mentor = get_field(\'match_mentor\', $post_id);

$mentee = get_field(\'match_mentee\', $post_id);

//get ID from mentor & mentee array

$match_mentor_id = $mentor[\'ID\'];  

$match_mentee_id = $mentee[\'ID\'];

//set up the mentor user_post_id

$mentor_post_id = "user_".$match_mentor_id; 

//get mentor curent_users contents

$current_mentees = get_field(\'current_mentees\', $mentor_post_id, false);

// see if the current mentees is null or has a mentee already

if ($current_mentees == \'\'){

    //write new mentee back to the Mentor User Meta field

    update_field(\'current_mentees\' , $match_mentee_id , $mentor_post_id);

       } else {

   //combine old mentee(s) with new mentee

   array_push( $current_mentees , $match_mentee_id);

//write new current mentees back to the Mentor User Meta fields

update_field(\'current_mentees\' , $current_mentees , $mentor_post_id);

}
match\\u导师;match\\u mentees和current\\u mentees都是ACF字段。我可以通过用户帐户中的下拉列表将(学员)用户(单个和多个)手动添加到当前的\\u学员。它显示为数组的数组。第一个看起来像:a:1:{i:0;s:2:“60〃;}//用户60添加第二个会得到:a:2:{i:0;s:2:“60”;i:1;s:2:“57;”//用户60及;57这对我来说是有用的。我希望代码也能这样做。

但是使用上述代码添加一个用户,在current\\u mentees字段/DB中,我看到了60。然后加上第二个,我得到a:1:{I:0;I:57;}。(它将替换第一个用户,而不是添加第二个用户)。

我不确定这是否是开始错误的(对于第一个用户),或者是否需要在添加第二个变量之前修改变量(我已经尝试过)。谢谢

1 个回复
最合适的回答,由SO网友:Jon Hagee 整理而成

好的,今天早上我想了几个办法,然后事情就解决了。让我发布修改后的代码。从本质上讲,我试图遵循自然的格式,看看是否可以让所有内容都更加符合要求。我决定将初始变量转换为一个数组,这就是为什么其他所有变量都是一致的。

//获取导师(&M);“匹配元数据”字段中的新学员用户数组

$mentor=get_字段($match_mentor\',$post_id);

$mentee=get\\u字段(\'match\\u mentee\',$post\\u id);

//从mentor阵列获取ID

$match\\u mentor\\u id=$mentor[\'id];

//从学员阵列获取ID

$match\\u mentee\\u id=$mentee[\'id\'];

//设置mentor user\\u post\\u id

$mentor\\u post\\u id=“user\\u”$match\\u mentor\\u id;

//从mentor curent\\u用户获取用户阵列

$current\\u mentees=get\\u字段(\'current\\u mentees\',$mentor\\u post\\u id,false);

//查看当前学员是否为空或是否已有学员

如果($current\\u mentees=“”){

//以正确的格式放置数据

$current\\u mentees=数组();

}

//将旧学员与新学员结合起来

array\\u push($current\\u mentees,$match\\u mentees\\u id);

//将新的当前学员写回导师用户元字段

update\\u字段(\'current\\u mentees\',$current\\u mentees,$mentor\\u post\\u id);

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请