field, array(
'placeholder' => '',
'chosen' => false,
'multiple' => false,
'sortable' => false,
'ajax' => false,
'settings' => array(),
'query_args' => array(),
) );
$this->value = ( is_array( $this->value ) ) ? $this->value : array_filter( (array) $this->value );
echo $this->field_before();
if ( isset( $this->field['options'] ) ) {
if ( ! empty( $args['ajax'] ) ) {
$args['settings']['data']['type'] = $args['options'];
$args['settings']['data']['nonce'] = wp_create_nonce( 'csf_chosen_ajax_nonce' );
if ( ! empty( $args['query_args'] ) ) {
$args['settings']['data']['query_args'] = $args['query_args'];
}
}
$chosen_rtl = ( is_rtl() ) ? ' chosen-rtl' : '';
$multiple_name = ( $args['multiple'] ) ? '[]' : '';
$multiple_attr = ( $args['multiple'] ) ? ' multiple="multiple"' : '';
$chosen_sortable = ( $args['chosen'] && $args['sortable'] ) ? ' csf-chosen-sortable' : '';
$chosen_ajax = ( $args['chosen'] && $args['ajax'] ) ? ' csf-chosen-ajax' : '';
$placeholder_attr = ( $args['chosen'] && $args['placeholder'] ) ? ' data-placeholder="'. esc_attr( $args['placeholder'] ) .'"' : '';
$field_class = ( $args['chosen'] ) ? ' class="csf-chosen'. esc_attr( $chosen_rtl . $chosen_sortable . $chosen_ajax ) .'"' : '';
$field_name = $this->field_name( $multiple_name );
$field_attr = $this->field_attributes();
$maybe_options = $this->field['options'];
$chosen_data_attr = ( $args['chosen'] && ! empty( $args['settings'] ) ) ? ' data-chosen-settings="'. esc_attr( json_encode( $args['settings'] ) ) .'"' : '';
if ( is_string( $maybe_options ) && ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) {
$options = $this->field_wp_query_data_title( $maybe_options, $this->value );
} else if ( is_string( $maybe_options ) ) {
$options = $this->field_data( $maybe_options, false, $args['query_args'] );
} else {
$options = $maybe_options;
}
if ( ( is_array( $options ) && ! empty( $options ) ) || ( ! empty( $args['chosen'] ) && ! empty( $args['ajax'] ) ) ) {
if ( ! empty( $args['chosen'] ) && ! empty( $args['multiple'] ) ) {
echo '';
$field_name = '_pseudo';
$field_attr = '';
}
// These attributes has been serialized above.
echo '';
} else {
echo ( ! empty( $this->field['empty_message'] ) ) ? esc_attr( $this->field['empty_message'] ) : esc_html__( 'No data available.', 'sakurairo_csf' );
}
}
echo $this->field_after();
}
public function enqueue() {
if ( ! wp_script_is( 'jquery-ui-sortable' ) ) {
wp_enqueue_script( 'jquery-ui-sortable' );
}
}
}
}