ACF_Form_User::render
This function will render ACF fields for a given $post_id parameter
Метод класса: ACF_Form_User{}
Хуков нет.
Возвращает
null. Ничего (null).
Использование
$ACF_Form_User = new ACF_Form_User(); $ACF_Form_User->render( $args );
- $args
- .
По умолчанию: array()
Список изменений
| С версии 5.0.0 | Введена. |
Код ACF_Form_User::render() ACF Form User::render ACF 6.4.2
function render( $args = array() ) {
// Allow $_POST data to persist across form submission attempts.
if ( isset( $_POST['acf'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
add_filter( 'acf/pre_load_value', array( $this, 'filter_pre_load_value' ), 10, 3 );
}
// defaults
$args = wp_parse_args(
$args,
array(
'user_id' => 0,
'view' => 'edit',
'el' => 'tr',
)
);
// vars
$post_id = 'user_' . $args['user_id'];
// get field groups
$field_groups = acf_get_field_groups(
array(
'user_id' => $args['user_id'] ? $args['user_id'] : 'new',
'user_form' => $args['view'],
)
);
// bail early if no field groups
if ( empty( $field_groups ) ) {
return;
}
// form data
acf_form_data(
array(
'screen' => 'user',
'post_id' => $post_id,
'validation' => ( $args['view'] == 'register' ) ? 0 : 1,
)
);
// elements
$before = '<table class="form-table"><tbody>';
$after = '</tbody></table>';
if ( $args['el'] == 'div' ) {
$before = '<div class="acf-user-' . esc_attr( $args['view'] ) . '-fields acf-fields -clear">';
$after = '</div>';
}
// loop
foreach ( $field_groups as $field_group ) {
// vars
$fields = acf_get_fields( $field_group );
// title
if ( $field_group['style'] === 'default' ) {
echo '<h2>' . esc_html( $field_group['title'] ) . '</h2>';
}
// render
echo $before; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- safe HTML string.
acf_render_fields( $fields, $post_id, $args['el'], $field_group['instruction_placement'] );
echo $after; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- safe HTML string.
}
// actions
add_action( 'acf/input/admin_footer', array( $this, 'admin_footer' ), 10, 1 );
}