如何从另一个插件调用函数?

时间:2012-03-14 作者:ltfishie

我正在使用Advanced Custom Fields plugin 并希望读取自定义字段的值。对于下拉列表和文本字段,这很简单,因为值保存在纯文本中,所以get_post_custom_values 功能正常。

但是,对于多选字段,ACF保留如下数据:

a:1:{i:0;s:3:"Value2";}
所以明智的做法是使用get_value 函数从ACF读取值并将其解析为对象。

在ACF插件中,第一行执行以下操作:

$acf = new Acf();
所以我假设我可以在插件中使用$acf变量并执行以下操作:

$afc->get_value ($post_id, $key);
但收到的错误为

PHP Notice:  Undefined variable
我是php开发新手,因此可能没有正确理解范围规则。那么,做这件事的正确方法是什么?我做错了什么?

1 个回复
SO网友:Sam Margulies

您引用的多选字段似乎存储在PHP serialized format, 它用于“在不丢失PHP值的类型和结构的情况下存储或传递PHP值”。

要取消序列化自定义字段值,需要使用unserialize() 功能:

$multi_select_field = unserialize( get_post_meta( get_the_ID(), \'custom_field_key\', true ) );

结束

相关推荐

如何从另一个插件调用函数? - 小码农CODE - 行之有效找到问题解决它

如何从另一个插件调用函数?

时间:2012-03-14 作者:ltfishie

我正在使用Advanced Custom Fields plugin 并希望读取自定义字段的值。对于下拉列表和文本字段,这很简单,因为值保存在纯文本中,所以get_post_custom_values 功能正常。

但是,对于多选字段,ACF保留如下数据:

a:1:{i:0;s:3:"Value2";}
所以明智的做法是使用get_value 函数从ACF读取值并将其解析为对象。

在ACF插件中,第一行执行以下操作:

$acf = new Acf();
所以我假设我可以在插件中使用$acf变量并执行以下操作:

$afc->get_value ($post_id, $key);
但收到的错误为

PHP Notice:  Undefined variable
我是php开发新手,因此可能没有正确理解范围规则。那么,做这件事的正确方法是什么?我做错了什么?

1 个回复
SO网友:Sam Margulies

您引用的多选字段似乎存储在PHP serialized format, 它用于“在不丢失PHP值的类型和结构的情况下存储或传递PHP值”。

要取消序列化自定义字段值,需要使用unserialize() 功能:

$multi_select_field = unserialize( get_post_meta( get_the_ID(), \'custom_field_key\', true ) );

相关推荐