我正在编写一个插件,在激活时添加额外的配置文件组和其中的一些字段。我正在使用basic$wpdb
要在其中插入新行的函数bp_xprofile_groups 和bp_xprofile_fields
所以整个过程看起来很蹩脚:
我将新行添加到bp_xprofile_groups;
我获取该行的ID(其中name=\'新组名\')我使用这些ID将新行插入到bp_xprofile_fields有些字段是选项,因此我总共进行了5次SQL查询,只创建了1个组字段和4个选项字段,其中该字段组中有2个复选框。
我想用BuddyPress挂钩。我找到了我需要的:
xprofile_insert_field_group($args)
和xprofile_insert_field($args)
看起来是这样的:
$args = array(
\'name\' => \'Test\',
\'description\' => \'\',
\'can_delete\' => \'0\'
);
xprofile_insert_field_group( $args );
然后,我假设使用xprofile\\u insert\\u field(),但我不知道刚创建的组的ID,以便在field\\u group\\u ID中使用:
$args = array(
\'field_group_id\' => ?????,
\'parent_id\' => \'\',
\'type\' => \'textbox\',
...
...
);
xprofile_insert_field( $args );
有人有什么建议吗?
SO网友:luiquao
似乎没有多少人在深入研究BP,所以我找到了一个解决方案。
要使用BP挂钩添加新字段组,请执行以下操作:
// Create new Field Group
$group_args = array(
\'name\' => \'Social Networks\'
);
$group_id = xprofile_insert_field_group( $group_args ); // group\'s ID
要将某些字段添加到此新组,请执行以下操作:
// Insert New Field
xprofile_insert_field(
array (
field_group_id => $group_id,
name => \'Twitter\',
can_delete => false, // Doesn\'t work *
field_order => 1,
is_required => false,
type => \'textbox\'
)
);
我认为英国石油公司目前存在一个漏洞。
can_delete = 0
意味着您不能删除某些内容(即字段或组),但无论您传递给什么
xprofile_insert_field()
这将是
can_delete = 1
.