如何在buddressress注册中添加占位符?
我们可以使用字段描述作为输入字段的占位符吗?
在bp-template下的register.php中。这两行代码构成了xprofile
$field_type = bp_xprofile_create_field_type( bp_get_the_profile_field_type() );
$field_type->edit_field_html();
如何编辑它们。这些线是否已连接。如何编辑x-profile字段。
答案 0 :(得分:2)
甚至更好,结合这两个答案。只需将其添加到您的functions.php:
function wp_add_placeholder($elements){
$elements['placeholder'] = bp_get_the_profile_field_name();
return $elements;
}
add_action('bp_xprofile_field_edit_html_elements','wp_add_placeholder');
答案 1 :(得分:1)
总是有更好的方法来编辑核心:
function wp_add_placeholder($elements){
$elements['placeholder'] = 'Placeholder';
return $elements;
}
add_action('bp_xprofile_field_edit_html_elements','wp_add_placeholder');
答案 2 :(得分:0)
刚刚遇到这个问题,我遇到的最快的事情就是处理不同领域的覆盖类:
首先,您需要找到名为 BP_XProfile_Field_Type_Textbox 的类(对于文本框)。在bp v2.0.2中,它可以在 bp-xprofile / bp-xprofile-class.php:2358 中找到。复制函数中的整个类,并根据需要重命名类名。假设我将其重命名为 CUSTOM_BP_XProfile_Field_Type_Textbox 。在这个类中有一个名为公共函数edit_field_html(array $ raw_properties = array())的函数。
替换:
$html = $this->get_edit_field_html_elements( array_merge(
array(
'type' => 'text',
'value' => bp_get_the_profile_field_edit_value(),
),
$raw_properties
) );
?>
<label for="<?php bp_the_profile_field_input_name(); ?>"><?php bp_the_profile_field_name(); ?> <?php if ( bp_get_the_profile_field_is_required() ) : ?><?php esc_html_e( '(required)', 'buddypress' ); ?><?php endif; ?></label>
<?php do_action( bp_get_the_profile_field_errors_action() ); ?>
<input <?php echo $html; ?>>
<?php
}
有了这个:
$required = bp_get_the_profile_field_is_required() ? ' ' . esc_html__( '(required)', 'buddypress' ) : '';
$html = $this->get_edit_field_html_elements( array_merge(
array(
'type' => 'text',
'value' => bp_get_the_profile_field_edit_value(),
'placeholder' => bp_get_the_profile_field_name() . $required
),
$raw_properties
) );
?>
<?php do_action( bp_get_the_profile_field_errors_action() ); ?>
<input <?php echo $html; ?>>
<?php
}
接下来你需要做的是覆盖hendles字段类的函数。将名为 bp_xprofile_get_field_types 的函数复制到主题中并重命名。假设我将其重命名为 custom_bp_xprofile_get_field_types 。
在字段数组中,将 BP_XProfile_Field_Type_Textbox 的“textbox”值重命名为 CUSTOM_BP_XProfile_Field_Type_Textbox (您创建和修改的类)。
您需要做的事情是覆盖打印最终结果的功能。将名为 bp_xprofile_create_field_type 的函数复制到主题中并重命名。假设我将其重命名为 custom_bp_xprofile_create_field_type 。
在此功能中替换:
$field = bp_xprofile_get_field_types();
使用:
$field = custom_bp_xprofile_get_field_types();
使用您修改的字段输出
在 register.php 中使用刚刚创建的新函数而不是原始的一个,所以最终的结果将是:
$field_type = custom_bp_xprofile_create_field_type( bp_get_the_profile_field_type() );
$field_type->edit_field_html();
最好将 register.php 复制到 YOUR_THEME / buddypress / members / register.php ,以便在更新bp插件后不会丢失更改。
如果您想修改其他字段,只需在 custom_bp_xprofile_get_field_types 中的类数组中重命名字段的类,然后复制该字段的bp类,并将其重命名为字段数组。
希望有所帮助。可能有更好的方法,但我没有找到任何方法。