BuddyPress:用于添加新个人资料字段和组的链接

时间:2012-08-17 作者:luiquao

我正在编写一个插件,在激活时添加额外的配置文件组和其中的一些字段。我正在使用basic$wpdb 要在其中插入新行的函数bp_xprofile_groupsbp_xprofile_fields

所以整个过程看起来很蹩脚:

我将新行添加到bp_xprofile_groups;

  • 我获取该行的ID(其中name=\'新组名\'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 );
    
    有人有什么建议吗?

    1 个回复
    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.

    结束