问题描述
我在以编程方式创建 BuddyBoss 字段时遇到问题(我假设该函数与原始 BuddyPress 函数相同或相似)。这是我现在正在使用的代码。 它在我的functions.php 主题文件中。我不打算长期使用这个触发器,但它似乎是一个很好的起点:
function add_bb_field() {
$args = array(
"field_group_id" => 4,"type" => "textbox","name" => "Test5"
);
xprofile_insert_field($args);
}
我很难找到关于参数值应该是什么的好的文档,但我认为这是正确的。我没有收到任何错误或任何错误信息,但没有创建该字段。
BuddyBoss 中的函数定义如下:(加上我在插件文件中添加的一些调试代码)
function xprofile_insert_field( $args = '' ) {
do_action( 'qm/debug',"triggered!" );
$r = wp_parse_args(
$args,array(
'field_id' => null,'field_group_id' => null,'parent_id' => null,'type' => '','name' => '','description' => '','is_required' => false,'can_delete' => true,'order_by' => '','is_default_option' => false,'option_order' => null,'field_order' => null,)
);
// Field_group_id is required.
if ( empty( $r['field_group_id'] ) ) {
do_action( 'qm/debug',"empty" );
return false;
}
//Check this is a non-empty,valid field type.
if ( ! in_array( $r['type'],(array) buddypress()->profile->field_types ) ) {
do_action( 'qm/debug',buddypress()->profile->field_types );
return false;
}
// Instantiate a new field object.
if ( ! empty( $r['field_id'] ) ) {
$field = xprofile_get_field( $r['field_id'] );
} else {
$field = new BP_XProfile_Field();
}
$field->group_id = $r['field_group_id'];
$field->type = $r['type'];
// The 'name' field cannot be empty.
if ( ! empty( $r['name'] ) ) {
$field->name = $r['name'];
}
$field->description = $r['description'];
$field->order_by = $r['order_by'];
$field->parent_id = (int) $r['parent_id'];
$field->field_order = (int) $r['field_order'];
$field->option_order = (int) $r['option_order'];
$field->is_required = (bool) $r['is_required'];
$field->can_delete = (bool) $r['can_delete'];
$field->is_default_option = (bool) $r['is_default_option'];
do_action( 'qm/debug',$field );
return $field->save();
}
代码块“检查这是一个非空的有效字段类型”似乎有问题。它在那里返回 false。我在该区域的日志记录变为 null(这对我来说似乎是一个大问题)。如果我删除那个块(顽皮),那么代码会继续运行并创建一个字段对象,但 $field -> save 似乎没有做任何事情。
我对修改 BB 有点陌生,而且我有点走投无路。我很感激一些帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)