私はアクティブになったときに追加のプロファイルグループとその中にいくつかのフィールドを追加するプラグインを書いています。私はbp_xprofile_groupsとbp_xprofile_fieldsに新しい行を挿入するために基本的な$wpdb
関数を使っています
そのため、プロセス全体は非常に不器用に見えます。
いくつかのフィールドはオプションなので、全部で5つのSQLクエリを作成し、そのフィールドグループに1つのグループフィールドと2つのチェックボックスを持つ4つのオプションフィールドを作成します。
BuddyPressフックを使って作りたいです。必要なものが見つかりました。
xprofile_insert_field_group($args)
とxprofile_insert_field($args)
だからそれはこのようになります:
$args = array(
'name' => 'Test',
'description' => '',
'can_delete' => '0'
);
xprofile_insert_field_group( $args );
それから私はxprofile_insert_field()を使用することになっていますが、私はfield_group_idで使用するために作成したグループのIDを知りません:
$args = array(
'field_group_id' => ?????,
'parent_id' => '',
'type' => 'textbox',
...
...
);
xprofile_insert_field( $args );
誰かが何か提案がありますか?
あまり多くの人が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'
)
);
現在BPにはバグがあると思います。 can_delete = 0
はあなたが何かを削除することはできないことを意味します(すなわちフィールドやグループ)が、あなたがxprofile_insert_field()
に何を渡してもそれはcan_delete = 1
になるでしょう。